bar*_*icz 1 excel vba excel-vba
我的工作表中有一些据说是空单元格,这给我带来了麻烦.
在运行任何代码之前,任何单元的输出IsNull和IsEmpty功能都是False.
但是,以下代码将令人惊讶地适用于任何单元格,即使它正在寻找空单元格:
If cell.value = "" Then cell.value = "Unassigned"
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,如果我试图反转这段代码:
If cell.value = "Unassigned" Then cell.value = ""
Run Code Online (Sandbox Code Playgroud)
,IsNull单元格的输出仍将是False,但IsEmpty将变成True.
这在整体情况下给我带来了很多麻烦,因为我使用数据透视表来总结数据,包括那些麻烦的单元格,在运行这两行代码之前,数据透视表不会为这些空白单元格分配任何标签,但在运行代码后,它将使用"(空格)"标签代替.我需要命名以保持一致.
考虑一下:
Debug.Print IsNull("X")
False
Debug.Print IsNull("")
False
Debug.Print IsNull(Empty)
False
Debug.Print IsNull(Null)
True
Run Code Online (Sandbox Code Playgroud)
IsNull只会为Null返回true.它不适合细胞价值测试.