我有一张表,其中列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