Jak zastosować i usunąć filtr z danych za pomocą VBA?

Spisie treści

Filtr VBA programu Excel

Narzędzie filtru VBA służy do sortowania lub pobierania określonych danych, funkcja Autofiltr jest używana jako funkcja arkusza, jednak ta funkcja ma inne argumenty, które są opcjonalne, a jedynym obowiązkowym argumentem jest wyrażenie, które obejmuje na przykład zakres arkusze robocze („Arkusz1”). Zakres („A1”). Autofiltr zastosuje filtr do pierwszej kolumny.

Filtr w VBA działa tak samo, jak w arkuszu. Jedyną różnicą jest to, że możemy zautomatyzować rutynowe zadanie filtrowania danych poprzez kodowanie.

AutoFilter to funkcja zawierająca wiele wartości składniowych. Poniżej znajdują się parametry związane z funkcją Autofiltru.

  • Zakres jest pierwszą rzeczą, którą musimy dostarczyć, aby użyć opcji „Autofiltr”. To jest po prostu dla jakiego zakresu komórek musimy zastosować filtr, na przykład Range („A1: D50”).
  • Pole jest pierwszym argumentem funkcji. Po wybraniu zakresu komórek za pomocą obiektu VBA RANGE, musimy wspomnieć, dla której kolumny zakresu chcemy zastosować filtr.
  • Kryterium 1 to nic innego, jak w wybranym polu, jaką wartość chcesz odfiltrować.
  • Operator jest używany w przypadku, gdy chcesz użyć argumentu Kryteria 2 . W tej opcji możemy skorzystać z poniższych opcji.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Widoczne rozwijane menu określa, czy wyświetlać symbol filtru w kolumnie zastosowanego filtru, czy nie. Jeśli chcesz wyświetlić, możesz podać argument jako TRUE lub FALSE.

Przykłady filtrowania danych za pomocą VBA

Przykład 1 - Zastosuj lub usuń filtr do danych

W przypadku, gdy chcesz zastosować opcję filtrowania do danych, możemy wyłączyć i włączyć tę opcję. Na przykład spójrz na poniższy obraz danych.

Krok 1: Zakres danych dostawy

Aby najpierw aktywować opcję filtrowania, musimy podać zakres naszych danych. Na powyższym obrazku nasze dane są rozłożone od A1 do G31, więc podaj ten zakres za pomocą obiektu RANGE.

Kod:

Sub Filter_Example () Range ("A1: G31") End Sub
Krok 2: Następnie przejdź do funkcji AutoFilter

Teraz uzyskaj dostęp do funkcji AutoFilter dla tego zakresu.

Kod:

Sub Filter_Example () Range („A1: G31”). AutoFilter End Sub
Krok 3: Uruchom kod, aby włączyć filtr

To wszystko. Uruchom ten kod, aby włączyć filtr automatyczny.

Ten kod działa jako przełącznik i jeśli filtr nie zostanie zastosowany, zostanie zastosowany. Jeśli został już zastosowany, usunie

Przykład 2 - Filtruj określone wartości

Teraz zobaczymy, jak używać parametrów opcji AutoFilter. Weź te same dane, co powyżej. Na przykład teraz musimy odfiltrować wszystkie „męskie” imiona i nazwiska płci.

Krok 1: Wybierz zakres i otwórz funkcję autofiltra
Krok 2: Następnie wybierz pole

W pierwszym argumencie funkcji, tj. Field, musimy wspomnieć odwołanie do kolumny, które chcielibyśmy odfiltrować. W tym przykładzie musimy filtrować tylko kandydatów typu „Mężczyzna”, czyli kolumna „C”, więc numer kolumny to 3.

Krok 3: teraz kryteria wzmianki

Teraz dla tego dostarczonego pola musimy wspomnieć o kryterium 1, tj. Jaką wartość musimy filtrować we wspomnianym polu. Musimy odfiltrować „Mężczyzna” z tej kolumny.

Kod:

Sub Filter_Example () Range („A1: G31”). Pole autofiltru: = 3, Criteria1: = „Male” End Sub
Krok 4: I uruchom kod

Ok, to wszystko. Ten kod będzie teraz filtrował tylko kandydatów „mężczyzn”.

Przykład # 3 - użycie argumentu OPERATOR

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Teraz w instrukcji WITH podaj pierwsze kryteria do filtrowania.

Kod:

Sub Filter_Example () With Range („A1: G31”) .AutoFilter Field: = 4, Criteria1: = „Graduate” End With End Sub

Teraz w następnym wierszu zrób to samo dla „Kraju”, zmieniając „Pole” na 6 i Kryteria na „USA”.

Kod:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" .AutoFilter Field: = 6, Criteria1: = "US" End With End Sub

Teraz będzie filtrować „Absolwent” tylko dla kraju „USA”.

Rzeczy do zapamiętania

  • W pierwszej kolejności zastosowany zostanie filtr tylko dla wspomnianego zakresu komórek.
  • Pole to nic, w której kolumnie chcesz filtrować dane.
  • W przypadku filtrowania wartości z więcej niż jednej kolumny, użyj opcji With.

Interesujące artykuły...