Vba: autofilter gebruiken met meerdere criteria
U kunt de volgende methoden gebruiken om AutoFilter in VBA met meerdere criteria te gebruiken:
Methode 1: Gebruik AutoFilter met meerdere criteria in één kolom
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Deze specifieke macro filtert alle rijen in het bereik A1:C11 waarbij de waarde van de eerste kolom gelijk is aan „A“ of „C“.
Methode 2: Gebruik AutoFilter met meerdere criteria in meerdere kolommen
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Deze specifieke macro filtert het bereik A1:C11 om alleen rijen weer te geven waarbij de eerste kolom gelijk is aan „A“ en de tweede kolom gelijk is aan „Bewaker“.
De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken met de volgende gegevensset in Excel:
Voorbeeld 1: Gebruik AutoFilter met meerdere criteria in een kolom
Stel dat we de gegevensset willen filteren, zodat alleen rijen worden weergegeven waarvan de eerste kolom gelijk is aan ‚A‘ of ‚C‘.
We kunnen hiervoor de volgende macro maken:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat de gegevensset is gefilterd om alleen rijen weer te geven waarvan de eerste kolom gelijk is aan ‚A‘ of ‚C‘.
Opmerking : we hebben slechts twee mogelijke waarden opgenomen in de functie Array() , maar u kunt er gerust zoveel opnemen als u wilt.
Voorbeeld 2: Gebruik autofilter met meerdere criteria in meerdere kolommen
Stel dat we de gegevensset willen filteren, zodat alleen rijen worden weergegeven waarin de kolomwaarde Team gelijk is aan A en de kolomwaarde Positie gelijk is aan Bewaker.
We kunnen hiervoor de volgende macro maken:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Ik heb gemerkt dat de dataset is gefilterd om alleen rijen weer te geven waarbij de waarde in de kolom Team gelijk is aan A en de waarde in de kolom Positie gelijk is aan Bewaker.
Opmerking : u kunt hier de volledige documentatie voor de VBA AutoFilter- methode vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: draaitabellen filteren
VBA: filters wissen
VBA: hoe dubbele waarden te verwijderen