我想通过一个名为“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/