删除行(多个标准)VBA的有效方法



我有一张表,其中列a中有一个字符串a,列B由字符串B组成。

我想与A栏中的单词"Begründung"和B栏中的"Nein"保持一致。

我正在使用从这些来源找到的以下代码。如果单元格没有';t包含'@'&基于搜索关键字VBA 的删除行

Sub KeepOnlyAtSymbolRows()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Set ws = ActiveWorkbook.Sheets("Sheet1")
    lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    Set rng = ws.Range("A1:A" & lastRow)
    ' filter and delete all but header row
    With rng
        .AutoFilter Field:=1, Criteria1:="<>*Begründung*"
        .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
    ' turn off the filters
    ws.AutoFilterMode = False
End Sub

我想为B列添加另一个标准。无论在B列中遇到"Nein",该行都会保留,其余部分会删除,但同时A列中的"Begrüundung"也会保留,剩余部分会删除。

换句话说,在工作表中遇到单词"Begründung"one_answers"Nein"的地方,这些行将被保留,其余行将被删除。

如果你们中有人能帮忙,我将不胜感激。

试试这个:

Sub DeleteWithMultipleColumnsCriterias()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Set ws = ActiveWorkbook.Sheets("Sheet1")
    lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
    Set rng = ws.Range("A1:B" & lastRow)
    ' filter and delete all but header row
    With rng
        .AutoFilter Field:=1, Criteria1:="<>*Begründung*"
        .AutoFilter Field:=2, Criteria1:="<>*Nein*"
        .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
    ' turn off the filters
    ws.AutoFilterMode = False
End Sub

最新更新