大家好。
只是定义了数组,但由于把数组赋值时放到了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