Stuart McLachlan
stuart at lexacorp.com.pg
Thu Jul 3 17:08:33 CDT 2003
On 3 Jul 2003 at 16:32, Mark H wrote:
> Hello all...
>
> Sorry if this is a bit simple, but I'm in a bit of a rush to get out and
> wanted to ask before I go (climbing - yippeeee)...
>
> Anyway, does anyone know how to determine the number of columns in an
> array? I am trying to write a bit of generic code and want to be able to
> pass the array and then figure out its width. I looked in the helps "See
> also" under Lbound and Ubound but found nothing...
>
Not that simple :-( .
This is the first working solution I can think of, hopefully someone
has something more elegant. It just keeps on trying to get the
UBOUND() of successive dimensions until it errors out with a
"Subscript out of range".
Function Dimensions(ArrayName As Variant) As Long
Dim dimcount As Long
Dim result As Long
If Not IsArray(ArrayName) Then
MsgBox "Not an Array"
Exit Function
End If
On Error GoTo errtrap
Do
dimcount = dimcount + 1
result = UBound(ArrayName, dimcount)
Loop
On Error GoTo 0
Exit Function
errtrap:
If Err = 9 Then
Dimensions = dimcount - 1
Exit Function
Else
MsgBox "Error " & Err.Number & ": " & Err.Description & " in
Function Dimensions()"
End If
End Function
Function test() As Long
Dim testarray(3, 4, 5, 6, 7, 8, 9) As String
test = Dimensions(testarray)
End Function
--
Lexacorp Ltd
http://www.lexacorp.com.pg
Information Technology Consultancy, Software Development,System
Support.