Jason Evans
asked on
Find out number of array dimensions.
Say I have a routine that accepts an array as a parameter, how can I find out the number of dimensions that array is.
i.e. Dim aArray(3,4) As String
Public Sub Foo(aArray() As String)
If NumOfDims(aArray()) = 2 Then
DoSomething
Else
DoSomethingElse
End If
End Sub
i.e. Dim aArray(3,4) As String
Public Sub Foo(aArray() As String)
If NumOfDims(aArray()) = 2 Then
DoSomething
Else
DoSomethingElse
End If
End Sub
wrong answer.
Private Function ArrayDimensions(arrtest As Variant) As Long
On Error GoTo ExitFun
Dim lngDimensions As Long
Dim lngTest As Long
Do While True
lngDimensions = lngDimensions + 1
lngTest = LBound(arrtest, lngDimensions)
Loop
ExitFun:
ArrayDimensions = lngDimensions - 1
End Function
Private Function ArrayDimensions(arrtest As Variant) As Long
On Error GoTo ExitFun
Dim lngDimensions As Long
Dim lngTest As Long
Do While True
lngDimensions = lngDimensions + 1
lngTest = LBound(arrtest, lngDimensions)
Loop
ExitFun:
ArrayDimensions = lngDimensions - 1
End Function
Public Sub Foo(aArray As Variant)
Dim aArray(3,4) As String
If ArrayDimensions(aArray) = 2 Then
DoSomething
Else
DoSomethingElse
End If
End Sub
Sorry, never mind the sub.
Dim aArray(3,4) As String
If ArrayDimensions(aArray) = 2 Then
DoSomething
Else
DoSomethingElse
End If
Dim aArray(3,4) As String
If ArrayDimensions(aArray) = 2 Then
DoSomething
Else
DoSomethingElse
End If
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Nice one!
Must be - comes from Italy. :)
ASKER
The example code on this site works a treat. Thanks
Thanks for your points
Returns the largest available subscript for the indicated dimension of an array.
lbound function:
Returns the smallest available subscript for the indicated dimension of an array.