weixing821 2020-05-20 10:07 采纳率: 0%
浏览 582

vba VBA判断数组被定义但未赋值的方法

大家好。

只是定义了数组,但由于把数组赋值时放到了if语句里,导致可能由于没有符合if语句的情况而没有给数组具体赋值,然后对数组进行其他操作(比如进行数组内数值排序)就会报错。
我想问下,怎么判断通过dim arr()形式定义的数组有没有被赋值?
我在网上查过,有说用isarray,isempty函数的。我实验了下,前真后假,没法判断。后来发现用 (not arr)是否为-1(if (not arr)<>-1 ) 这个方法可以,但具体不是很懂其原理,自己找相关资料又找不到。
因此,哪位大神可以帮忙解释一下数组没有被赋值为啥不是empyt?(not arr)<>-1的原理是什么?

 下面为我试验时简化的代码

Sub ttt()

Dim arr() '是数组,且不为空
Dim arr1

arr1 = Empty

Debug.Print IsArray(arr)
Debug.Print IsEmpty(arr)  “结果为啥为false??”
Debug.Print IsEmpty(arr1)

If (Not arr) <> -1 Then   ‘啥原理???’
    MsgBox "数组被赋值了"
Else
    MsgBox "数组没有被赋值"
End If

End Sub

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2020-05-20 11:54
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 损失匹配问题,求解答
  • ¥15 3500常用汉字书法体检测数据集下载
  • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
  • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
  • ¥15 VB.NET利用摄像头拍照的程序
  • ¥15 linux下vscode设置不了字连体
  • ¥20 游戏mod是如何制作的
  • ¥15 关于#hadoop#的问题:按照老师上课讲的步骤写的
  • ¥20 有人会用这个工具箱吗 付fei咨询
  • ¥30 成都市武侯区住宅小区兴趣点