有没有一个函数能知道一个动态数组有没有被ReDim过?
声明一个动态数组,
Dim MyArray() as long
然后调用一个函数,这个函数有可能对这个数组进行Redim,也有可能什么也不做。
MyFun MyArray
最后我要使用这个MyArray,但是我不知道在MyFun里有没有对数组进行Redim
LBound(MyArray) ???????????
[解决办法]
如果实在想知道:
On Error Resume Next
a = LBound(MyArray)
MsgBox IIf(Err.Number = 9, "没有 Redim ", "已经 Redim ")
[解决办法]
Private Declare Function SafeArrayGetDim Lib "oleaut32.dll " (ByRef saArray() As Any) As Long 'API判断数组为空或没有初始化
Private Sub Command1_Click()
Dim tmp() As String
If SafeArrayGetDim(tmp) = 0 Then
MsgBox "数组为空或没有初始化 "
End If
End Sub