Autofiltr Excel VBA
Autofiltr w języku VBA jest używany jako wyrażenie, a jego składnia jest następująca: Wyrażenie. Autofiltr (Pole, Kryteria 1, Operator, Kryteria 2, Lista rozwijana) wszystkie argumenty są opcjonalne. Filtr jest pomocny w odfiltrowaniu określonych danych z ogromnych danych.
Jeśli jesteś zwykłym użytkownikiem, filtry Excela nie są dla Ciebie dziwne. Niektóre z narzędzi, których używamy w arkuszu roboczym, są również zintegrowane z VBA, a opcja automatycznego filtrowania jest jednym z ważnych narzędzi dostępnych w VBA. Jak wszyscy wiemy, filtr Excela jest dostępny w zakładce danych.
Korzystając z tej opcji filtru, możemy bawić się danymi. Jeśli masz do czynienia z minimalną ilością danych i jeśli uważasz, że opcja autofiltru VBA nie jest naprawdę wymagana, możesz nadal korzystać z opcji filtra arkusza.
Jeśli masz do czynienia z ogromną ilością danych, możesz skorzystać z opcji Autofiltr, aby uprościć przebieg procesu.
Składnia funkcji AutoFilter
Autofiltru w Excel VBA można używać z obiektem zakresu. Podobnie jak inne nasze funkcje, ta również ma swoją własną składnię.
- Zakres: zakres to po prostu zakres, w jakim chcesz zastosować filtr.
- Pole: Pole oznacza, z której kolumny wybranego zakresu chcesz odfiltrować dane. Kolumna będzie liczona od lewej do prawej.
Na przykład, jeśli Twój zakres wynosi od A1 do D100 i chcesz zastosować filtr dla kolumny D, to numer pola to 4, ponieważ w wybranym zakresie D jest czwartą kolumną.
Kryterium 1: W polu wybrałeś, co chcesz filtrować.
- Operator: Jeśli chcesz zastosować więcej niż jedno kryterium do filtrowania danych, musimy użyć symboli operatora. Niektóre z kodów operatorów są jak poniżej.
xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.
Kryterium 2: jaka jest druga rzecz, którą chcesz filtrować wraz z kryterium 1?
- Widoczne menu rozwijane : Czy chcesz wyświetlić ikonę filtra fop w przefiltrowanej kolumnie. Jeśli chcesz wyświetlić PRAWDA jest argumentem, jeśli nie FAŁSZ jest argumentem.
Jak zastosować filtr za pomocą Autofiltru VBA? (z przykładem)
Możesz pobrać ten szablon Autofiltru VBA tutaj - Szablon Autofiltru VBAZałóżmy poniżej danych, nad którymi pracujesz.
Teraz używając kodu VBA zastosujemy filtr. Wykonaj poniższe czynności, aby zastosować filtr.
Krok 1: Rozpocznij podprocedurę, nadając nazwę makro.
Kod:
Sub AutoFilter_Example1 () End Sub
Krok 2: Pierwszą rzeczą jest to, w jakim zakresie musimy zastosować filtr. W tym przypadku musimy zastosować zakres od A1 do E25.
Kod:
Sub AutoFilter_Example1 () Range ("A1: E25") End Sub
Krok 3: Po wybraniu zakresu zastosuj teraz opcję autofiltru.
Kod:
Sub AutoFilter_Example1 () Range („A1: E25”). AutoFilter End Sub
Nie wybieramy żadnych wartości za pomocą autofiltra, a raczej stosujemy filtr w tym momencie.
Uruchom kod za pomocą klawisza F5 lub ręcznie wstawi filtr dla wybranego zakresu.
Więc zastosował filtr do danych. Teraz zobaczymy, jak odfiltrować dane.
Przykład 1 - odfiltrowywanie danych za pomocą Autofiltru
Rozważ te same dane z powyższego przykładu. Teraz musimy odfiltrować dział „Finanse” z kolumny dział.
Krok 1: Po zastosowaniu filtru pierwszym argumentem jest wskazanie, z której kolumny filtrujemy dane. W takim przypadku musimy przefiltrować dane z kolumny Dział, więc numer kolumny to 5.
Kod:
Sub AutoFilter_Example1 () Range („A1: E25”). Pole Autofiltru: = 5, End Sub
Krok 2: Kryterium 1 to nic innego, jak to, co chcemy odfiltrować z piątej kolumny. Dlatego musimy odfiltrować „Finanse”.
Kod:
Sub AutoFilter_Example1 () Range („A1: E25”). Pole AutoFilter: = 5, Criteria1: = „Finance” End Sub
To wszystko, uruchom ten kod ręcznie lub za pomocą klawisza F5, który odfiltruje tylko „Finanse” z listy.
Przykład 2 - Operator w Autofiltrze
Widzieliśmy, jak filtrować pojedynczą wartość. Teraz zobaczymy, jak filtrować wiele elementów. Załóżmy, że razem z „Finance” chcesz przefiltrować również dział „Sales”, abyśmy mogli to zrobić za pomocą operatorów.
Krok 1: Po zastosowaniu pierwszych kryteriów w kolejnym argumencie wybierz operator „xlOr”.
Kod:
Sub AutoFilter_Example2 () Range („A1: E25”). Pole AutoFilter: = 5, Criteria1: = „Finance”, Operator: = xlOr End Sub
Krok 2: Teraz w Kryterium 2 podaj wartość jako „Sprzedaż”.
Kod:
Sub AutoFilter_Example2 () Range („A1: E25”). Pole AutoFilter: = 5, Criteria1: = „Finance”, Operator: = xlOr, Criteria2: = „Sales” End Sub
Krok 3: OK, gotowe, uruchom ten kod za pomocą klawisza F5 lub ręcznie odfiltruje zarówno „Finanse”, jak i „Sprzedaż”.
W argumencie Operator użyłem „xlOr”, co spowoduje wybranie w filtrze zarówno „Finanse”, jak i „Sprzedaż” .
Przykład # 3 - Filtrowanie liczb za pomocą Autofiltru
Używając symbolu operatora „XlAnd” możemy również odfiltrować liczby. Załóżmy, że z kolumny Overtime chcesz odfiltrować wszystkie wartości> 1000, ale <3000.
Krok 1: Pierwszą rzeczą jest zmiana pola z 5 na 4.
Kod:
Sub AutoFilter_Example3 () Range („A1: E25”). Pole autofiltru: = 4 End Sub
Krok 2: Kryterium 1 to> 1000.
Kod:
Sub AutoFilter_Example3 () Range ("A1: E25"). Pole Autofiltru: = 4, Criteria1: = "> 1000", End Sub
Step 3: Here we need to match both the criteria so use “xlAnd” as the operator.
Code:
Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub
Step 4: Criteria 2 will <3000.
Code:
Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, Criteria2:="<3000" End Sub
Now if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column which are >1000 but <3000.
Example #4 – Filter from Different Columns using AutoFilter
In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers which are >25000 but <40000.
You can use the below code does that.
Code:
Sub AutoFilter_Example4() With Range("A1:E25") .AutoFilter Field:=5, Criteria1:="Finance" .AutoFilter Field:=2, Criteria1:=">25000", Operator:=xlAnd, Criteria2:="<40000" End With End Sub
This will filter out two columns.
Run this code using the F5 key or you can run manually.
Things to Remember
- Try different combinations under Operator to get the knowledge of VBA AutoFilter.
- If you are not sure what to put in try using the macro recorder.
- If you want to filter out text values then you need to supply them in double-quotes.
- Use WITH statement to apply more than one column filter.