2014-11-03 46 views
2

我有一个表,其中在柱A有一个字符串和Col B由字符串B的有效的方式来删除行(多指标分析)VBA

我想保持的Word“Begründung”行中柱A和“Nein”在山坳B.

我使用这些来源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 

我想补充另一个标准山口B.发现下面的代码无论在上校B' Nein'遇到该行被保留剩下的部分被删除,但同时'A区的Begrüundung被保留,其余部分被删除。

换句话说,无论单词“Begründung”和“Nein”在工作表中遇到,这些行将被保留,其余的被删除。

我真的很感激,如果你们中的任何人都可以提供帮助。

+0

所以,为了保持该行,两个条件必须满足:可乐含有“Begrundung”和COLB包含“Nein”。那是对的吗? – 2014-11-03 12:23:17

+0

@RonRosenfeld 没有不是真的。 Begründung或Nein。 我在下面提供了一些例子,以使其更清晰 细胞A1由Begründung组成,B1由Ja组成 - 细胞保留 细胞A2由Prüfkriterien组成,B2由Nein组成 - 保持行 细胞A3由Begründung和B3组成,由Nein组成 - 保持行 细胞A4由Prüfkriterien和B4组成Nein-删除行 – wildradical 2014-11-03 12:26:42

+0

“无论单词'Begründung'和'Nein'在工作表中遇到那些行保留”...“B4包含Nein-删除行”。它是否正确? – dee 2014-11-03 12:35:31

回答

2

试试这个:

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 
+0

嗯,我运行它没有真正发生。该工作表保持不变。 – wildradical 2014-11-03 11:10:28

+0

注释掉这个''.Offset(1,0).SpecialCells(xlCellTypeVisible).EntireRow.Delete'和''ws.AutoFilterMode = False'并查看运行代码后的过滤器的样子 – 2014-11-03 11:11:15

+0

@ vba4all-它所有的过滤都完全没有帮助。我非常感谢您为我的查询投入的时间。非常感谢你提前 – wildradical 2014-11-03 11:16:37

相关问题