Пример:
Dim aArray(10) 'количество размерностей - 1
Dim bArray(10, 20) 'количество размерностей - 2
Dim cArray(10, 20, 15) 'количество размерностей - 3
Dim fArray(10, 3, 4 To 8, 5, 22, 5 To 10, 6) 'количество размерностей - 7
Как получить количество размерностей для каждого массива? К примеру,
MsgBox ФункцияПодсчётаЧислаРазмерностей(fArray) должна выдать 7.
Ответ:
Function DimCount(b As Variant) As Long
DimCount = 0
If (Not IsNull(b)) Then
Dim v As Variant, z As Long
For Each v In b
z = z + 1
Next v
Do
DimCount = DimCount + 1
z = z / (UBound(b, DimCount) - LBound(b, DimCount + 1)
Loop Until z = 1
End If
End Function