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

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐