所以我编写了这个示例程序来理解更大程序中的类似问题。我有一个a As Variant和b As Double。a等于Null,同时b等于零。然后我继续检查 是否a或b是Null。
Sub testNull()
Dim a As Variant
Dim b As Double
a = Null
b = 0
If a = Null Then
MsgBox (a & "null") 'doesn't print
ElseIf a <> Null Then
MsgBox (a & " not null") 'doesn't print
Else
MsgBox (b & " don't know") 'prints
End If
If b = Null Then
MsgBox (b & "null") 'doesn't print
ElseIf b <> Null Then
MsgBox (b & " not null") 'doesn't print
Else
MsgBox (b & " don't know") 'prints
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
结果表明,虽然 excel 不认为a或b是,但Null同时它也不认为其中任何一个不是Null。
在这里进行检查的正确方法是什么?是什么原因导致这些问题?
测试任何内容Null(包括相等性测试Null = Null)都会返回Null,而不是True或False。
要检查 a Null,请使用该IsNull函数,例如
If IsNull(a) Then
MsgBox "a is null"
Else
'...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1837 次 |
| 最近记录: |