我在 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”替换一些单元格值作为删除行的机制:)
自下而上工作,检查B
N/A 列中的值,如果找到,您可以使用:
ActiveSheet.Cells(currentRow,1).EntireRow.Delete