excel - 如何根据条件删除 Excel 工作表中的行

标签 excel vba

我有一个 Excel 工作簿,在 A 列的 worksheet1 中,如果该列的值 = ERR 我希望将其删除(整行),这怎么可能?

PS:请记住,我以前从未使用过 VBA 或宏,因此非常感谢详细的描述。

最佳答案

手动或使用 VBA(如下所示)使用自动过滤器是删除行的一种非常有效的方法

下面的代码

  • 适用于整个已用范围,即处理空白
  • 通过更改 strSheets = Array(1, 4) 可以很容易地适应其他工作表.即此代码当前在第一张和第四张纸上运行
     Option Explicit
    
    
    Sub KillErr()
    Dim ws As Worksheet
    Dim lRow As Long
    Dim lngCol As Long
    Dim rng1 As Range
    Dim strSheets()
    Dim strws As Variant
    strSheets = Array(1, 4)
    For Each strws In strSheets
        Set ws = Sheets(strws)
        lRow = ws.Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
        lngCol = ws.Cells.Find("*", , xlValues, , xlByColumns, xlPrevious).Column
        Application.ScreenUpdating = False
        ws.Rows(1).Insert
        Set rng1 = ws.Range(ws.Cells(1, lngCol), ws.Cells(lRow + 1, lngCol))
        With rng1.Offset(0, 1)
            .FormulaR1C1 = "=RC1=""ERR"""
            .AutoFilter Field:=1, Criteria1:="TRUE"
            .EntireRow.Delete
            On Error Resume Next
            .EntireColumn.Delete
            On Error GoTo 0
        End With
    Next
    Application.ScreenUpdating = True
    End Sub
    
  • 关于excel - 如何根据条件删除 Excel 工作表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7821701/

    相关文章:

    excel - 将文件另存为上一个工作日的日期

    excel - 遍历文件夹并复制第一张工作表的值和格式

    Excel VBA 错误 : Definitions of property procedures for the same property are inconsistent

    javascript - Excel 对象未定义

    javascript - 如何使用 office.js Excel Addin 中的行号和列号获取完整的 Excel 范围地址?

    python - 加快将大 excel 文件导入 pandas 数据框的速度

    excel - 如果路径不存在,则询问用户文件夹路径

    vba - 从用户窗体 VBA 存储变量

    VBA - 如果单元格包含某个值而不是等于或不等于,则复制值

    excel - 当修改的工作簿日期/时间大于另一个时运行的 VBA 宏