Hur tillämpar och tar jag bort filter från data med VBA?

Innehållsförteckning

Excel VBA-filter

VBA-filterverktyget används för att reda ut eller för att hämta de specifika data som önskas, Autofilter-funktionen används som en kalkylfunktion, men den här funktionen har andra argument som är valfria och det enda obligatoriska argumentet är uttrycket som täcker intervallet till exempel arbetsblad (“Sheet1”). Range (“A1”). Autofilter tillämpar filtret i första kolumnen.

Filter i VBA fungerar på samma sätt som det fungerar i kalkylbladet. Det enda som är annorlunda är att vi kan automatisera rutinuppgiften att filtrera data genom kodning.

AutoFilter är en funktion som innehåller många syntaxvärden. Nedan följer de parametrar som är involverade i funktionen AutoFilter.

  • Sortimentet är det första vi behöver för att använda alternativet “AutoFilter”. Detta är helt enkelt för vilket cellområde vi behöver för att tillämpa filtret, till exempel Range (“A1: D50”).
  • Fältet är det första argumentet i funktionen. När cellintervallet väljs genom VBA RANGE-objektet måste vi nämna för vilken kolumn i intervallet vi vill använda filtret för.
  • Kriterier 1 är inget annat än i det valda fältet, vilket värde du vill filtrera bort.
  • Operatören används i fallet om du vill använda argumentet Kriterium 2 . I det här alternativet kan vi använda alternativen nedan.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Synlig rullgardinsmeny är huruvida en filtersymbol ska visas i kolumnen som används för filter eller inte. Om du vill visa kan du ange argumentet som SANT eller annars FALSKT.

Exempel på att filtrera data med VBA

Exempel nr 1 - Använd eller ta bort filter på data

Om du vill använda filteralternativet på data kan vi stänga av och sätta på det här alternativet. Titta till exempel på databilden nedan.

Steg 1: Leveransdataområde

För att aktivera filteralternativet först måste vi ange vad som är vårt dataområde. I bilden ovan sprids våra data från A1 till G31, så leverera detta intervall med hjälp av ett RANGE-objekt.

Koda:

Sub Filter_Example () Range ("A1: G31") End Sub
Steg 2: Gå sedan till AutoFilter-funktionen

Gå nu till AutoFilter-funktionen för detta intervall.

Koda:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Steg 3: Kör koden för att aktivera filtret

Det är allt. Kör den här koden för att aktivera autofiltret.

Den här koden fungerar som en växling, och om filtret inte tillämpas kommer det att gälla. Om den redan tillämpas kommer den att tas bort.

Exempel # 2 - Filtrera specifika värden

Nu kommer vi att se hur man använder parametrarna för alternativet AutoFilter. Ta samma data som ovan. Nu måste vi till exempel filtrera bort alla ”manliga” könsnamn.

Steg 1: Välj räckvidd och öppna autofilterfunktionen
Steg 2: Välj sedan fält

I det första argumentet för funktionen, dvs. Field, måste vi nämna kolumnreferensen som vi vill filtrera bort. I det här exemplet behöver vi bara filtrera "Manliga" kandidater, vilket är kolumn "C", så kolumnnummer är 3.

Steg 3: Nämn nu kriterier

Nu för detta levererade fält måste vi nämna kriterierna 1, dvs. vilket värde vi behöver filtrera i det nämnda fältet. Vi måste filtrera "Man" från den här kolumnen.

Koda:

Sub Filter_Example () Range ("A1: G31"). AutoFilter Field: = 3, Criteria1: = "Male" End Sub
Steg 4: Och kör koden

Ok, det är allt. Denna kod filtrerar endast "Manliga" kandidater nu.

Exempel # 3 - Användning av OPERATOR Argument

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

Nu inne i MED-uttalandet, ange de första kriterierna som ska filtreras.

Koda:

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

Nu i nästa rad, gör samma sak för "Land" genom att ändra "Fält" som 6 och Kriterier som "USA".

Koda:

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

Nu filtreras "Graduate" bara för landet "USA".

Saker att komma ihåg

  • Det första som bara används för det nämnda cellområdet filter kommer att tillämpas.
  • Fältet är inget i vilken kolumn du vill filtrera data.
  • Om du filtrerar värden från mer än en kolumn, använd sedan With.

Intressanta artiklar...