我有一个 excel 文件,其中所有内容都通过宏进行控制。有一次,我将文件从一张工作表移动到另一张工作表,这些数据存储为积压工作。
然后我尝试选择空白单元格并删除该行(如果为真)。但单元格显示为空白,但不是。
所以我将它从工作表 A 移动到工作表 B。工作表 A 中的数据被移动并粘贴为工作表 B 中的值。被移动的数据有两列:A 列包含项目 ID,B 列包含项目的日期不复存在(停止日期)。
在工作表 A 中,停止日期通过一个简单的公式 (=+IF(O5<>"";O5;N5)) 填充,如果没有新的停止日期输入,则从积压中获取。
现在,如果既没有新的停止日期输入也没有任何积压,则该单元格为空白。
当宏将数据从工作表 A 复制并粘贴(作为值)到工作表 B 时,B 列由空白单元格填充(按预期),但由于缺乏更好的词,有些东西是不可见的。几乎就像会有格式一样,当您遇到除 ANSI 以外看不到的隐藏字符时。
如果我选择任何空单元格并按删除,然后运行“转到特殊...”和空白,该单元格将被函数选中。
我正在使用这一行删除空格:
Columns("B").SpecialCells(xlBlanks).EntireRow.Delete
这是我复制/粘贴和处理停止日期部分的代码段:
Sheets("Dashboard").Select
Range("B3:Q400").Select
Selection.Copy
Sheets("CeaseDate").Select
Range("F1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("G:T").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("F1:G1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Columns("F:G").Select
Selection.Delete Shift:=xlToLeft
Columns("B").SpecialCells(xlBlanks).EntireRow.Delete 'Remove rows that does not contain a Cease Date <--- This does not work since it wont treat the blank cells as blank
'Range converting to date format
Columns("B:B").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("A:B").Select
ActiveSheet.Range("A:B").RemoveDuplicates Columns:=Array(1, 2), _
Header:=xlYes
Selection.End(xlUp).Select
所以我找到了一个解决方案,我无法解释为什么会出现这个问题,但显然它至少从 2003 版开始就出现在 Excel 中。
问题:当我复制单元格并使用 paste-special-value 时,出现空白的单元格将无法通过测试=ISBLANK()
并返回FALSE
值。然而,没有任何东西可以从单元格中复制或标记。如果我选择明显空白的单元格并按删除或退格键,=ISBLANK()
现在将返回一个TRUE
值。
解决方案:
=ISBLANK()
测试我最初在这里找到了这个(相当晦涩的)解决方案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句