1

我在 excel 方面不是很有经验,并且不确定这是否可能,但我正在使用一个非常大的 excel 电子表格,并且 B 列中的一些单元格包含诸如N/A.

我想知道是否有一种方法可以创建一些条件语句来删除所有行,如果该行的 B 列中的单元格包含N/A,并在删除后向上移动单元格?

我真的很感激任何建议,因为这将为我节省大量时间。

提前谢谢了!

4

2 回答 2

3

如果这些是 #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”替换一些单元格值作为删除行的机制:)

于 2013-06-28T21:27:27.567 回答
0

自下而上工作,检查BN/A 列中的值,如果找到,您可以使用:

ActiveSheet.Cells(currentRow,1).EntireRow.Delete
于 2013-06-28T20:41:31.077 回答