所以我已经编写了这个示例程序,以便在更大的程序中理解类似的问题。我有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
结果显示,虽然excel不会将a
或b
视为Null
,但同时它不考虑任何 < / em>是Null
。
在这里进行检查的正确方法是什么?是什么导致了这些问题?
答案 0 :(得分:4)
针对git
测试任何内容(包括相等性测试Null
)会返回Null = Null
,而不是Null
或True
。
要检查False
,请使用Null
功能,例如
IsNull