Dim MyArray() as Long, Dim MyArray() as String, etc.

G

Guest

I am using Office 2003 on Windows XP.

I am used to just dimensioning my arrays a variants (since I think at one
time you had to?), but can you not now dim them as other types? Or does VBA
coerce them back to variants anyway? For example:

Dim arrRow() As Long
Dim arrFileName() As String

Is there any performance gain in doing this?
Is there any other advantage in doing this?
Is it considered good programming practice to do this?

Any an all input appreciated.
Thanks in advance.
 
N

Nick

It's always been good practice to be specific in any variable declaration
unless you are unsure what value will be passed to it.
You may have been having problems in the past because you are declaring an
array without any dimensions. If you do this with a variant you don't have
to ReDim it to increase the dimension size.
If you want to use a specific type you must redim it to specify the
dimensions when the code is running
 
G

Guest

Nick,
I appreciate your input, but I know about array sizes. My programs almost
always call for dynamic arrays. My real focus was on determining if there is
an advantage to dimensioning an array as a type other than variant. Any
further input on this?
 
N

Nick

No problem.

Specifying type is faster as VB doesn't have to coerce the variable to the
data type once the data has been entered and also it uses less memory If you
are specific the system allocates only the memory required for the data
type. If you use variant it sets aside much more memory as it doesn't know
what will be passed
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top