Autofiltr VBA

W VBA możesz tworzyć Autofiltr w celu filtrowania zakresu komórek lub tabeli Excela. W tym samouczku dowiesz się, jak tworzyć Autofiltr dla jednej lub wielu kolumn i dla wielu warunków.

Jeśli chcesz dowiedzieć się, jak korzystać z zaawansowanego filtra w VBA, kliknij tutaj: Zaawansowany filtr VBA

Tworzenie autofiltru w VBA

Najpierw zobaczysz, jak po prostu tworzyć Autofiltr w zakresie, dzięki czemu użytkownik może filtrować dane. Dane, które wykorzystamy w przykładach, znajdują się na obrazku 1:

Rysunek 1. Dane dla przykładów Autofiltra

Oto kod do tworzenia Autofiltr:

1 Arkusz1.Zakres("A1:E1").Autofiltr

Aby włączyć Autofiltr, musimy określić nagłówek zakresu, w naszym przypadku A1:E1 i użyć Autofiltr metoda obiektu Zasięg. W rezultacie nasz zakres danych ma aktywowane filtry:

Obraz 2. Autofiltr włączony dla danych

Autofiltr z parametrami pól i kryteriów

VBA pozwala również automatycznie filtrować określone pole za pomocą określonych wartości.

Aby to zrobić, musisz użyć parametrów Pole oraz Kryteria1 metody Autofiltr. W tym przykładzie chcemy przefiltrować trzecią kolumnę (Produkt) dla Produkt A tylko. Oto kod:

12 Arkusz1.Zakres("A1:E1").Pole autofiltru:=3, _Kryterium1:="Produkt A"

w Pole parametr, możesz ustawić numer kolumny w zakresie (nie w Excelu), podczas gdy w Kryteria1 możesz umieścić wartość, którą chcesz filtrować. Po wykonaniu kodu nasza tabela wygląda tak:

Obraz 3. Autofiltr z polem i kryteriami

Jak widać, tylko wiersze z Produkt A w trzeciej kolumnie są wyświetlane w zakresie danych.

Autofiltrowanie z wartościami pól i wieloma kryteriami

Jeśli chcesz filtrować jedno pole z kilkoma wartościami, musisz użyć parametru Operator z Autofiltr metoda. Aby filtrować wiele wartości, musisz ustawić Operator do xlWartościFiltru a także umieścić wszystkie wartości Kryteria w tablicy. W tym przykładzie filtrujemy Produkt kolumna dla Produkt A oraz Produkt B. Oto przykład kodu:

123 Arkusz1.Zakres("A1:E1").Pole autofiltru:=3, _Criteria1:=Array("Produkt A", "Produkt B"), _Operator:=xlFilterValues

Kiedy wykonujemy kod, otrzymujemy tylko wiersze z Produktem A i Produktem B, jak widać na obrazku 4:

Obraz 4. Autofiltr z wartościami wielu kryteriów

Zakres danych automatycznego filtrowania z wieloma kryteriami

Jeśli chcesz filtrować pole z wieloma kryteriami, musisz użyć Kryteria1 oraz Kryteria2 parametry, ale także Operator xlAnd.

W następnym przykładzie przefiltrujemy pierwszą kolumnę (Data) dla dat z grudnia 2022 r. W związku z tym mamy dwa kryteria: datę większą niż 12.01.2018 i krótszą niż 31.12.18. Oto kod:

1234 Arkusz1.Zakres("A1:E1").Pole autofiltru:=1, _Kryterium1:=">=12/01/2018", _Operator:=xlI, _Kryteria2:="<=12/31/2018"

Po wykonaniu kodu widać, że w zakresie danych wyświetlane są tylko daty w grudniu:

Obraz 5. Autofiltr z wieloma kryteriami dla pola

Wartości parametrów operatora metody AutoFilter

W następnej tabeli. możesz zobaczyć wszystkie możliwe wartości Operator parametr metody AutoFilter i ich opisy:

Operator Opis
xlAnd Obejmuje wiele kryteriów - Kryteria 1 i Kryteria 2
xlOr Zawiera jedno z wielu kryteriów - Kryterium 1 lub Kryterium 2
xlTop10Przedmioty Filtruje określoną liczbę najwyżej sklasyfikowanych wartości (liczba określona w Kryterium1)
xlBottom10Items Filtruje określoną liczbę wartości o najniższym rankingu (liczba określona w Kryterium1)
xlTop10 procent Filtruje pewien procent najwyżej sklasyfikowanych wartości (% określony w Kryterium1)
xlBottom10 procent Filtruje pewien procent wartości o najniższym rankingu (% określony w Kryterium1)
xlWartościFiltru Zawiera wiele wartości kryteriów z Array
xlFiltrKolorKomórki Filtruje komórki pod kątem kolorów
xlFilter Kolor Czcionki Filtruje komórki pod kątem kolorów czcionek
xlFilterIkona Ikony filtrów
xlFiltrDynamiczny Filtruj wartości dynamiczne

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave