Link to home
Start Free TrialLog in
Avatar of Jason Evans
Jason EvansFlag for United Kingdom of Great Britain and Northern Ireland

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
Avatar of jjmartin
jjmartin

ubound function:
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.
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


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

ASKER CERTIFIED SOLUTION
Avatar of ameba
ameba
Flag of Croatia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Nice one!
Must be - comes from Italy. :)
Avatar of Jason Evans

ASKER

The example code on this site works a treat. Thanks
Thanks for your points