2008-11-07 58 views

回答

7
Ubound(MySingleDimensionalArray, 2) ' Number of Array Elements 

Ubound(MyMultiDimensionalArray, 1) ' Number of Columns 
Ubound(MyMultiDimensionalArray, 2) ' Number of Rows 
+0

如果MySingleDimensionalArray是一維數組,那麼你的第一行會出錯。 – jammus 2009-08-27 16:04:26

2
function ArrayDimensions(theArray) 
    dim Result,test 
    Result = 0 
    if isarray(theArray) then 
     on error resume next 
      do 
       test = -2 
       test = ubound(theArray,result+1) 
       if test > -2 then result = result + 1 
      loop until test=-2 
     on error goto 0 
    end if 
    ArrayDimensions = Result 
end function 
+0

有趣,它獲得了正確的維度!但是如何從未知維度的數組中獲取值,如何遍歷所有「數組單元格」?如果維度已知,則語法是Response.Write(myArr(1,2,3,4))! – armen 2013-04-18 07:52:05

4

類似的方法來feihtthief的回答這裏我想這是你想要的,而不是特定的尺寸大小。

Function NumDimensions(arr) 
    Dim dimensions : dimensions = 0 
    On Error Resume Next 
    Do While Err.number = 0 
     dimensions = dimensions + 1 
     UBound arr, dimensions 
    Loop 
    On Error Goto 0 
    NumDimensions = dimensions - 1 
End Function 

然後調用它像這樣:

Dim test(9, 5, 4, 3, 9, 1, 3, 5) 
NumDimensions(test) 

會給你的價值8

這是一個有點蹩腳,但它會做你的要求。