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

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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!