vba - 如果 B 列中的任何单元格包含字符串 X,则删除行并将单元格上移

标签 vba excel

我在 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/

相关文章:

c# - 将 Excel 工作表中的图像导入 SQL Server 表 C#

string - 向下复制找到的字符串 1 单元格

Excel 循环、计算和着色宏跳过单元格

arrays - 无法将变体数组分配给类型化数组

vba - 运行时错误,但仅在第二个循环中

excel - vba从word表复制到excel

delphi - 无需Excel即可从Delphi导出到Excel

excel - 使用 R 将 Excel 电子表格保存为 .csv?

VBA - 忽略隐藏的工作表 - 将特定工作表另存为 PDF

vba - 具有可选参数的用户子 - 在宏窗口中不可见