Empty、Null和""有什么区别???最近做个程序,其中用IsNumeric()来判断返回的数据是不是数字,Null和""能够判断出来;但是若返回的是Empty,却认为是数字类型。现在只能再对Empty单独处理一次,由于需要作判断的地方比较多,大大地增加了代码量。
不知道有没有办法一次将Empty、Null和""都判断出来???最好能详细点说说它们的区别~~~

解决方案 »

  1.   

    先回答以下问题吧! 经过以下的叙述之后, 变量 A、B、C、D 分别等于 0、
    ""、Null、 Empty、 Nothing 的哪一个?
    Dim A
    Dim B As String
    Dim C As Integer
    Dim D As Object
    A 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检
    测 A = "" 或 A = 0, 也都可以得到 True 值。
    B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意 
    B<> Null。
    C 等于 0, 这个还有问题吗?
    D 等于 Nothing, 尚未设定有物件的「物件变量」都等于 Nothing, 但请不
    要使用 D = Nothing , 而要使用 D Is Nothing 来判断 D 是否等于 Nothing, 
    因为判断 是否相等的符号是 Is 不是 = 。
    最令人迷惑的地方是 Null 这个保留字, 请看以下语句:
    Print X = Null
    Print X <> Null
    结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只
    要含有 Null , 则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null 
    绝对不能使用:
    If X = Null Then ' 永远都会得到 Null
    而要使用:
    If IsNull(X) Then
    哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任
    何数据的「数据字段」(在数据库中) 会等于 Null。 
      

  2.   

    Null 值指出 Variant 不包含有效数据。Null 与 Empty 不同,后者指出变量尚未初始化。Null 与长度为零的字符串 (““) 也不同,长度为零的字符串指的是空串。
      

  3.   

    你用MyIsNumeric 函数 代替你的 IsNumeric 函数就可以了 
    使用查找 代替很快就改好Function MyIsNumeric(vValue As Variant) As Boolean
        If Not (IsEmpty(vValue)) And IsNumeric(vValue) Then
            MyIsNumeric = True
        Else
            MyIsNumeric = False
        End If
    End Function
      

  4.   

    网上转载
    0、""(空字串)、Null、Empty、与 Nothing 的区别 
    先回答以下问题吧! 经过以下的叙述之后, 变量 A、B、C、D 分别等于 0、
    ""、Null、 Empty、 Nothing 的哪一个?
    Dim A
    Dim B As String
    Dim C As Integer
    Dim D As Object
    A 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检
    测 A = "" 或 A = 0, 也都可以得到 True 值。
    B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意 
    B<> Null。
    C 等于 0, 这个还有问题吗?
    D 等于 Nothing, 尚未设定有物件的「物件变量」都等于 Nothing, 但请不
    要使用 D = Nothing , 而要使用 D Is Nothing 来判断 D 是否等于 Nothing, 
    因为判断 是否相等的符号是 Is 不是 = 。
    最令人迷惑的地方是 Null 这个保留字, 请看以下语句:
    Print X = Null
    Print X <> Null
    结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只
    要含有 Null , 则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null 
    绝对不能使用:
    If X = Null Then ' 永远都会得到 Null
    而要使用:
    If IsNull(X) Then
    哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任
    何数据的「数据字段」(在数据库中) 会等于 Null。