如何根据使用VBA的条件删除Excel ListObject中的行?

Sha*_*n H 8 excel vba excel-vba

我在Excel中有一个表,tblFruits有10列,我想删除Fruit列所包含的任何行Apple.我怎样才能做到这一点?

Sha*_*n H 11

以下子工作:

Private Sub deleteTableRowsBasedOnCriteria(tbl As ListObject, columnName As String, criteria As String)

    Dim x As Long, lastrow As Long, lr As ListRow
    lastrow = tbl.ListRows.Count
    For x = lastrow To 1 Step -1
        Set lr = tbl.ListRows(x)
        If Intersect(lr.Range, tbl.ListColumns(columnName).Range).Value = criteria Then
            'lr.Range.Select
            lr.Delete
        End If
    Next x

End Sub
Run Code Online (Sandbox Code Playgroud)

子可以像这样执行:

Dim tbl As ListObject
Set tbl = ThisWorkbook.Worksheets("Sheet1").ListObjects("tblFruits")
Call deleteTableRowsBasedOnCriteria(tbl, "Fruit", "Apple")
Run Code Online (Sandbox Code Playgroud)