我有一个电子表格,它在我们的 Enterprise 系统中生成为报告并下载到 Excel 电子表格中。生成的电子表格中的空白单元格并不是真正的空白,即使不存在任何数据 - 并且空白单元格不包含“空格”字符。
例如,A2 中的以下单元格公式返回 TRUE(如果 A1 是空白单元格):
=IF(A1="","TRUE","FALSE")
However,
=ISBLANK(A1)
返回 FALSE。
您可以通过在单元格中键入撇号 (') 并复制该单元格来重现此问题。然后,使用“粘贴特殊...值”粘贴到另一个单元格,撇号在粘贴的单元格中不可见,在公式栏中也不可见。似乎有一个透明单元格,但使用 ISBLANK 计算结果为 FALSE。
这会导致排序导致在升序排序的顶部出现假空白单元格,而实际上它们需要位于排序的底部。
我可以使用 vba 循环来修复假空白,循环遍历每一列并进行评估
IF Cell.VALUE = "" Then
Cell.Clear
但由于电子表格有数万行数据和多达 50 列,这给程序增加了大量开销,我更喜欢使用 FIND 和 Replace。
这是当前不起作用的代码:
Range("ZZ1").Copy
Range("Table1[#All]").Select
With Selection
.Replace What:="", Replacement:=.PasteSpecial(xlPasteValues, xlNone, False, False), _
LookAt:=xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
以下方法也无法清除假空白单元格:
Replacement:= vbnullstring
Replacement:= ""
Replacement:= Cells.Clear
Replacement:= Cells.ClearContents
Replacement:= Cells.Value = ""
我已经尝试了 20 种其他方法,但也不起作用。