Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Dim MyArray() as Long, Dim MyArray() as String, etc.

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.
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default Dim MyArray() as Long, Dim MyArray() as String, etc.

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



"quartz" wrote in message
...
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.



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Dim MyArray() as Long, Dim MyArray() as String, etc.

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?

"Nick" wrote:

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



"quartz" wrote in message
...
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.




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Dim MyArray() as Long, Dim MyArray() as String, etc.

Yes, there should be advantages in size and speed.

--
Regards,
Tom Ogilvy


"quartz" wrote in message
...
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?

"Nick" wrote:

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



"quartz" wrote in message
...
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.






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default Dim MyArray() as Long, Dim MyArray() as String, etc.

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



"quartz" wrote in message
...
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?

"Nick" wrote:

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



"quartz" wrote in message
...
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.






Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dim MyArray vs. Dim MyArray() Alan Beban[_2_] Excel Programming 12 November 14th 04 06:13 PM
If Range("C1") is in MyArray zSplash Excel Programming 3 April 23rd 04 04:22 PM
Can I reset an array to myarray() Alan Beban[_4_] Excel Programming 1 February 20th 04 06:16 PM
Can I reset an array to myarray() Chip Pearson Excel Programming 0 February 20th 04 05:41 PM
Redim MyArray Peter Pantus Excel Programming 2 September 27th 03 03:37 PM


All times are GMT +1. The time now is 02:27 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"