首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

有没有一个函数能知道一个动态数组有没有被ReDim过?该怎么处理

2012-01-16 
有没有一个函数能知道一个动态数组有没有被ReDim过?声明一个动态数组,DimMyArray()aslong然后调用一个函数

有没有一个函数能知道一个动态数组有没有被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

热点排行