【发布时间】:2014-11-03 10:56:48
【问题描述】:
我有一张表,其中 Col A 中有一个字符串 A,而 Col B 由字符串 B 组成。
我想在 Col A 中保留带有单词“Begründung”的行,在 Col B 中保留带有单词“Nein”的行。
我正在使用从这些来源Efficient way to delete entire row if cell doesn't contain '@' 和Delete Row based on Search Key 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
我想为 Col B 添加另一个标准。无论在 Col B 中的任何地方遇到“Nein”,都会保留该行并删除其余行,但同时保留 Col A 中的“Begrüundung”并删除其余行。
换句话说,只要在工作表中遇到单词“Begründung”和“Nein”,就会保留这些行,而删除其余行。
如果有人能提供帮助,我将不胜感激。
【问题讨论】:
-
因此,为了保留行,两个条件都必须为真:ColA 包含“Begrundung”,ColB 包含“Nein”。对吗?
-
@RonRosenfeld 不,不是。 Begründung 或 Nein。我在下面提供了一些示例以使其更清楚,例如单元格 A1 由 Begründung 组成,B1 由 Ja - Keep the Row 单元格 A2 由 Prüfkriterien 组成,B2 由 Nein 组成Nein- 删除行
-
“只要在工作表中遇到 'Begründung' 和 'Nein' 字样,就会保留这些行” ...“B4 包含 Nein- 删除该行”。这是正确的吗?
-
如果自动筛选没有保留所有要删除的行,请尝试高级筛选,您可以在其中“或”条件。如果需要,您还可以使用它将结果复制到新范围。一旦你有这个工作,录制一个宏。