查找零维数组

通常情况下,当寻找数量的限制,或他们的界限,你可以用户UBound和LBound。

我现在卡住了,因为我有一个dynamic数组,我想检查它是否有其第一个ReDim(或者如果它至less有一个维度)。

没有单维UBound(array,1)超出范围。

那么我该如何检查它是否有零个angular度?

结果应该多less看起来像这样:

Dim array() If NO_DIMENSIONS Then ...something... End if 

您可以使用错误捕获来完成此操作。

 Function NumberOfDimensions(arr As Variant) 'Sets up the error handler. On Error GoTo FinalDimension 'Visual Basic for Applications arrays can have up to 60000 'dimensions; this allows for that. For DimNum = 1 To 60000 'It is necessary to do something with the LBound to force it 'to generate an error. ErrorCheck = LBound(arr, DimNum) Next DimNum FinalDimension: NumberOfDimensions = DimNum - 1 End Function 

此代码已从Microsoft支持部门的代码修改为函数。

所以你会这样使用:

 Dim testArr() If NumberOfDimensions(testArr) = 0 Then 'Do Something End If 

在这种方法中,你将下标超出范围的错误,并用它来计算有多less维度。