【问题标题】:Strange case when cells seem to be empty, but are not单元格似乎是空的但不是的奇怪情况
【发布时间】:2018-05-18 07:42:51
【问题描述】:

我的工作表中有一些应该是空的单元格,这给我带来了麻烦。

在运行任何代码之前,任何单元格的IsNullIsEmpty 函数的输出都是False

但是,即使它正在寻找空单元格,以下代码也可以令人惊讶地适用于任何单元格:

If cell.value = "" Then cell.value = "Unassigned" 

更奇怪的是,如果我尝试反转这段代码:

If cell.value = "Unassigned" Then cell.value = ""

,单元格上IsNull 的输出仍为False,但IsEmpty 将变为True

这给我带来了很大的麻烦,因为我正在使用数据透视表来汇总数据,包括那些麻烦的单元格,并且在运行这两行代码之前,数据透视表不会为这些数据分配任何标签空白单元格,但在运行代码后它将使用“(空白)”标签。我需要命名保持一致。

【问题讨论】:

标签: vba excel


【解决方案1】:

考虑一下:

Debug.Print IsNull("X")
False
Debug.Print IsNull("")
False
Debug.Print IsNull(Empty)
False
Debug.Print IsNull(Null)
True

IsNull 只会为 Null 返回 true。不适用于单元格值测试。

【讨论】:

    猜你喜欢
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多