excel - 从表中删除特定行

标签 excel vba autofilter excel-tables

我想通过一个名为“Sorted_Duplicate_Removal”的表检查错误、空白和 0 值,然后从表中删除这些行。不幸的是,每次我运行我的代码时:

    Dim i As Integer
For i = 2 To Worksheets("Resource Group Table").ListObjects("Sorted_Duplicate_Removal").DataBodyRange.Rows.Count + 1
    If Worksheets("Resource Group Table").Range("X" & i).Text = "#N/A" Then
        Worksheets("Resource Group Table").ListObjects("Sorted_Duplicates_Removal").ListRows(i - 1).Delete
    Else
        If Worksheets("Resource Group Table").Range("X" & i).Value = "0" Then
        Worksheets("Resource Group Table").ListObjects("Sorted_Duplicates_Removal").ListRows(i - 1).Delete
        End If
    End If
Next i
我收到关于以“.delete”结尾的任何一行的“超出范围”的错误。
任何信息,将不胜感激

最佳答案

删除 Excel 表中的筛选行

  • 适当调整列:仅当表格从列 A 开始时,然后是字段 24表示列 X .您也可以使用标题代替 24 ,例如.ListColumns("Whatever").Index .

  • Option Explicit
    
    Sub DeleteFilteredRows()
        
        Dim Criteria As Variant: Criteria = Array("", "0", "#N/A")
        
        Dim tbl As ListObject
        Set tbl = ThisWorkbook.Worksheets("Resource Group Table") _
            .ListObjects("Sorted_Duplicate_Removal")
        
        Dim dvrg As Range ' Data Visible Range
        
        With tbl
            If .ShowAutoFilter Then
                If .AutoFilter.FilterMode Then .AutoFilter.ShowAllData
            End If
            .Range.AutoFilter 24, Criteria, xlFilterValues
            On Error Resume Next
                Set dvrg = .DataBodyRange.SpecialCells(xlCellTypeVisible)
            On Error GoTo 0
            .AutoFilter.ShowAllData
        End With
        
        If Not dvrg Is Nothing Then dvrg.Delete xlShiftUp
        
    End Sub
    

    关于excel - 从表中删除特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71623410/

    相关文章:

    VBA AutoFilter 隐藏所有行 - 包括匹配条件的行

    excel - VBA中CDate函数的问题

    html - 按类名的数据抓取元素

    java - 如何比较列表中的对象并删除重复项

    vba - 将 VBA 集合转换为数组

    vba - 如何在工作表名称更改时动态更改代码?

    Excel VBA 错误取决于列的筛选方式

    arrays - 在工作表列中查找数组值

    Excel - 将单元格转换为具有配对数据的行

    excel - 在 VBA 中引用命名范围