我的工作表中有一些据说是空单元格,这些单元格给我带来了麻烦。
在运行任何代码之前,任何单元格的IsNull
和IsEmpty
函数的输出都是False
。
但是,以下代码将令人惊讶地适用于任何单元格,即使它正在寻找空单元格:
If cell.value = "" Then cell.value = "Unassigned"
更奇怪的是,如果我尝试撤消此代码:
If cell.value = "Unassigned" Then cell.value = ""
,单元格中IsNull
的输出仍为False
,但IsEmpty
将变为True
。
这在大局中给我带来了很多麻烦,因为我使用数据透视表来总结数据,包括那些麻烦的单元格,在运行这两行代码之前,数据透视表不会为这些代码分配任何标签空白单元格,但在运行代码后,它将使用"(空白)"标签代替。我需要命名以保持一致。
答案 0 :(得分:5)
考虑一下:
Debug.Print IsNull("X")
False
Debug.Print IsNull("")
False
Debug.Print IsNull(Empty)
False
Debug.Print IsNull(Null)
True
IsNull只会为Null返回true。它不适合细胞价值测试。