如何判断一个动态数组是否被分配?! ps:二维数组以上也要能判断!

Summer006 2005-10-11 06:24:04
加精
老问题了。以下是网上找到的方法:
Public Function IsReDim(ByRef x() As Variant) As Boolean
'判断动态数组是否被分配过
Dim temp As Variant
temp = Join(x, ",")
IsReDim = LenB(temp) > 0 '空数组长度为零
End Function

不过网上的做法只能对付一维的,二维以上的话,join那里要出错。
有啥更好的方法? 除了on error。。。
谢谢!!
...全文
272 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Summer006 2005-10-12
  • 打赏
  • 举报
回复
to yinweihong(真名:尹伟红):
要得就是这个效果!!
谢谢
yinweihong 2005-10-12
  • 打赏
  • 举报
回复
Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long

例子:
Private Sub Form_Load()
Dim Your(3, 1 To 6) As Long
If SafeArrayGetDim(Your) > 0 Then
MsgBox "Array as elements"
Else
MsgBox "none"
End If

End Sub

viena 2005-10-12
  • 打赏
  • 举报
回复
这个动态数组是你自己分配的吗?如果是你用一个模块级变量坐标志,ReDim时设置标志就可以了
Summer006 2005-10-12
  • 打赏
  • 举报
回复
不会把 ,
vb也太残了。怎么连这点都做不到呢?!!
northwolves 2005-10-11
  • 打赏
  • 举报
回复
on error 应该是最有效的方法了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧