查找零维数组
通常情况下,当寻找数量的限制,或他们的界限,你可以用户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维度。