Vba: jak używać autofiltru z wieloma kryteriami
Aby użyć Autofiltru w VBA z wieloma kryteriami, możesz użyć następujących metod:
Metoda 1: Użyj autofiltru z wieloma kryteriami w jednej kolumnie
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
To konkretne makro będzie filtrować wszystkie wiersze w zakresie A1:C11 , gdzie wartość w pierwszej kolumnie jest równa „A” lub „C”.
Metoda 2: Użyj autofiltru z wieloma kryteriami w wielu kolumnach
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
To konkretne makro będzie filtrować zakres A1:C11, aby pokazać tylko wiersze, w których pierwsza kolumna jest równa „A”, a druga kolumna jest równa „Straż”.
Poniższe przykłady pokazują, jak w praktyce zastosować każdą z tych metod z następującym zbiorem danych w Excelu:
Przykład 1: Użyj Autofiltru z wieloma kryteriami w kolumnie
Załóżmy, że chcemy przefiltrować zbiór danych, aby wyświetlić tylko wiersze, których pierwsza kolumna jest równa „A” lub „C”.
W tym celu możemy utworzyć następujące makro:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Należy pamiętać, że zbiór danych został przefiltrowany tak, aby wyświetlać tylko wiersze, których pierwsza kolumna jest równa „A” lub „C”.
Uwaga : w funkcji Array() umieściliśmy tylko dwie możliwe wartości, ale możesz dodać dowolną ich liczbę.
Przykład 2: Użyj autofiltru z wieloma kryteriami w wielu kolumnach
Załóżmy, że chcemy przefiltrować zbiór danych, aby wyświetlić tylko wiersze, w których wartość w kolumnie Zespół jest równa A , a wartość w kolumnie Pozycja jest równa Straż.
W tym celu możemy utworzyć następujące makro:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważyłem, że zbiór danych został przefiltrowany tak, aby pokazywał tylko wiersze, w których wartość w kolumnie Zespół jest równa A , a wartość w kolumnie Pozycja jest równa Straż.
Uwaga : Pełną dokumentację metody Autofiltru VBA można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak filtrować tabele przestawne
VBA: Jak wyczyścić filtry
VBA: jak usunąć zduplikowane wartości