我在 excel 方面不是很有经验,并且不确定这是否可能,但我正在使用一个非常大的 excel 电子表格,并且 B 列中的一些单元格包含诸如 N/A
之类的值.
我想知道是否有一种方法可以创建一些将删除所有行的条件语句,如果该行的 B 列中的单元格包含 N/A
,并在删除后向上移动单元格?
我真的很感激任何建议,因为这将为我节省大量时间。
提前谢谢了!
最佳答案
如果这些是#N/A(系统)错误,则使用GoTo Special
(Constants, Errors) 直截了当:
Sub DeleteErrorRows()
On Error Resume Next 'in case there are no errors in cells
Range("B:B").SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
On Error GoTo 0 'resume error handling
End Sub
我怀疑可以使用
Replace
用 '#N/A' 替换 'N/A' 然后使用我的程序,尽管我没有对此进行测试。 已添加 是的,它应该工作:Sub DeleteErrorRows()
Range("B:B").Replace "N/A", "#N/A"
On Error Resume Next 'in case there are no errors in cells
Range("B:B").SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
On Error GoTo 0 'resume error handling
End Sub
实际上,我认为这可以更普遍地应用,用“#N/A”替换一些单元格值作为删除行的机制:)
关于vba - 如果 B 列中的任何单元格包含字符串 X,则删除行并将单元格上移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17373177/