is array redimmed?

S

Stefi

Hi All.

I want to use a one dimension dynamic array, so my declaration is:

Dim myarray()

Redim myarray(x) changes it to a real array.
But how can I determine the state of myarray when it was not redimmed yet .

Thanks,
Stefi
 
J

Jacob Skaria

Dear Stefi

May be you can check the number of dimensions using the below proc. and if
it is 0 you can Redim...

Dim myarray()
If GetNumberOfDimensions(myarray) = 0 Then
ReDim myarray(10)
End If


Function GetNumberOfDimensions(arrTemp) As Long
On Error GoTo ErrHandler
Do
intTemp = intTemp + 1
ErrorCheck = UBound(arrTemp, intTemp)
Loop
ErrHandler:
GetNumberOfDimensions = intTemp - 1
End Function


If this post helps click Yes
 
J

Joel

the problem with the REDIM() statemtn it is may create an extra item in the
array. For example
Redim A(5) really create 6 items 0 to 5.

If you specfiy
Redim(0 to 4) this will create only 5 items

Also use Preserve so you don't loose you old items after redim

Redim Preserve A(5)

I would test if the array already exits bu use a counter to keep track of
the number of items or use UBOUND to get the upper limits of the array.

You could also make the array size 1 at the beginning of the code
Dim A as variant
Redim A(0 to 0)
 
R

Rick Rothstein

You might get a more useful answer if you told us what it is you are trying
to do (that is, why are you trying to check the state of MyArray and what
will you do when you find out).
 

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