Excel中VB编程如何获取数组的维数

2025-04-16 18:02:50
推荐回答(3个)
回答1:

下面的代码是含有错误跳转的,但是如果放在这一个函数里面不会影响你其他的代码。
感觉完全不用错误处理做不出来。【虽然有个IsError,但是无法像 IsError(UBound(mArray, i))这样使用它,不然我们就可以不用跳转了。】

【Excel中的VBA与VB语法上没有什么差别】
设计思想:
在VB中数姐最大维数是60,所以我们通过错误捕捉来处理这个问题,在这里我们用到UBound函数
Public Function ArrayRange(mArray As Variant) As Integer
Dim i As Integer
Dim Ret As Integer
Dim ErrF As Boolean

ErrF = False
On Error GoTo ErrHandle
'判断代入的参数是否为数组 
If Not IsArray(mArray) Then
ArrayRange = -1
Exit Function
End If
'VB中数组最大为60
For i = 1 To 60
'用UBound函数判断某一维的上界,如果大数组的实际维数时产生超出范围错误,
' 此时我们通过Resume Next 来捕捉错这个错误
Ret = UBound(mArray, i)
If ErrF Then Exit For
Next i
'最后返回
ArrayRange = Ret

Exit Function
ErrHandle:
Ret = i - 1
ErrF = True
Resume Next

End Function

回答2:

3、维数用ubound()获得数组下限 lBound()上限
2、错误跳转可以使用on error goto 标记 例如 on error goto aa aa:
或者 on error resume next 遇到错误跳转过去执行下一行

回答3:

用循环测试吧,在On Error Goto语句中返回结果。
是VBA吗?