Hvordan bruke og slette filter fra data ved hjelp av VBA?

Innholdsfortegnelse

Excel VBA-filter

VBA filterverktøy brukes til å sortere ut eller hente de spesifikke dataene som ønskes, Autofilter-funksjonen brukes som en regnearkfunksjon, men denne funksjonen har andre argumenter som er valgfrie, og det eneste obligatoriske argumentet er uttrykket som dekker for eksempel regneark ("Ark1"). Område ("A1"). Autofilter bruker filteret i første kolonne.

Filter i VBA fungerer på samme måte som det fungerer i regnearket. Det eneste som er annerledes er at vi kan automatisere rutineoppgaven med å filtrere dataene gjennom koding.

AutoFilter er en funksjon som inkluderer mange syntaksverdier. Nedenfor er parametrene som er involvert i AutoFilter-funksjonen.

  • Utvalget er det første vi trenger å levere for å bruke alternativet “AutoFilter”. Dette er ganske enkelt for hvilket område av celler vi trenger for å bruke filteret, for eksempel Range (“A1: D50”).
  • Feltet er det første argumentet i funksjonen. Når celleområdet er valgt gjennom VBA RANGE-objektet, må vi nevne for hvilken kolonne i området vi vil bruke filteret for.
  • Kriterier 1 er ingenting annet enn i det valgte feltet, hvilken verdi du vil filtrere ut.
  • Operatøren brukes i tilfelle hvis du vil bruke Criteria 2- argumentet. I dette alternativet kan vi bruke alternativene nedenfor.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Synlig rullegardinmeny er om det skal vises et filtersymbol i kolonnen som brukes på filteret eller ikke. Hvis du vil vise, kan du oppgi argumentet som SANT eller ellers FALSE.

Eksempler på filtrering av data ved bruk av VBA

Eksempel 1 - Bruk eller fjern filter på dataene

Hvis du vil bruke filteralternativet til dataene, kan vi slå av og på dette alternativet. Se for eksempel på databildet nedenfor.

Trinn 1: Tilførselsdataområde

For å aktivere filteralternativet først, må vi oppgi hva som er dataområdet vårt. På bildet ovenfor er dataene våre spredt over fra A1 til G31, så gi dette området ved å bruke et RANGE-objekt.

Kode:

Sub Filter_Example () Range ("A1: G31") End Sub
Trinn 2: Deretter får du tilgang til autofilterfunksjonen

Nå får du tilgang til AutoFilter-funksjonen for dette området.

Kode:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Trinn 3: Kjør koden for å aktivere filteret

Det er alt. Kjør denne koden for å aktivere automatisk filter.

Denne koden fungerer som en bryter, og hvis filteret ikke brukes, vil den gjelde. Hvis den allerede er brukt, fjernes den.

Eksempel 2 - Filter spesifikke verdier

Nå vil vi se hvordan du bruker parametrene til alternativet AutoFilter. Ta de samme dataene som ovenfor. For eksempel må vi nå filtrere ut alle "mannlige" kjønnsnavn.

Trinn 1: Velg rekkevidde og åpne autofilterfunksjon
Step 2: Then Select Field

In the first argument of the function i.e., Field, we need to mention the column reference that we would like to filter out. In this example, we need to filter only “Male” candidates, which is column “C,” so column number is 3.

Step 3: Now Mention Criteria

Now for this supplied Field, we need to mention the Criteria 1 i.e., what value we need to filter in the mentioned Field. We need to filter “Male” from this column.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=3, Criteria1:="Male" End Sub
Step 4: And run the code

Ok, that’s all. This code will filter only “Male” candidates now.

Example #3 - Usage of 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

Nå inne MED-setningen, oppgi de første kriteriene som skal filtreres.

Kode:

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

Nå i neste linje, gjør det samme for "Land" ved å endre "Felt" som 6 og Kriterier som "USA."

Kode:

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

Nå vil dette filtrere "Graduate" bare for landet "US".

Ting å huske

  • Den første tingen først for det nevnte celleområdet filter blir brukt.
  • Feltet er ingenting i hvilken kolonne du vil filtrere dataene.
  • I tilfelle filtrering av verdier fra mer enn en kolonne, bruk deretter With.

Interessante artikler...