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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *