2008-11-07 74 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

这是一个有点蹩脚,但它会做你的要求。