Excel vba检查number是否为null:不能按预期工作

时间:2017-11-22 08:00:18

标签: excel vba excel-vba

所以我已经编写了这个示例程序,以便在更大的程序中理解类似的问题。我有a As Variantb As Doublea等于Null,而b等于零。然后我继续检查abNull

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不会将ab视为Null,但同时它不考虑任何 < / em>是Null

在这里进行检查的正确方法是什么?是什么导致了这些问题?

1 个答案:

答案 0 :(得分:4)

针对git测试任何内容(包括相等性测试Null)会返回Null = Null,而不是NullTrue

要检查False,请使用Null功能,例如

IsNull