Hoe filter uit gegevens toe te passen en te verwijderen met VBA?

Inhoudsopgave

Excel VBA-filter

VBA-filtertool wordt gebruikt om de specifieke gewenste gegevens te sorteren of op te halen, de Autofilter-functie wordt gebruikt als een werkbladfunctie, maar deze functie heeft andere argumenten die optioneel zijn en het enige verplichte argument is de uitdrukking die bijvoorbeeld het bereik omvat werkbladen ("Blad1"). Bereik ("A1"). Autofilter past het filter toe op de eerste kolom.

Filter in VBA werkt op dezelfde manier als in het werkblad. Het enige verschil is dat we de routinetaak van het filteren van de gegevens door middel van codering kunnen automatiseren.

AutoFilter is een functie die veel syntaxiswaarden bevat. Hieronder staan ​​de parameters die betrokken zijn bij de AutoFilter-functie.

  • Het bereik is het eerste dat we moeten leveren om de optie "AutoFilter" te gebruiken. Dit is simpelweg voor welk celbereik we het filter moeten toepassen, bijvoorbeeld Bereik ("A1: D50").
  • Het veld is het eerste argument in de functie. Zodra het celbereik is geselecteerd via het VBA RANGE-object, moeten we vermelden voor welke kolom van het bereik we het filter willen toepassen.
  • Criteria 1 is niets anders dan in het geselecteerde veld, welke waarde u wilt filteren.
  • De operator wordt gebruikt in het geval dat u het criterium 2 wilt gebruiken . Bij deze optie kunnen we de onderstaande opties gebruiken.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Zichtbare vervolgkeuzelijst geeft aan of een filtersymbool in de kolom met filter toegepast moet worden weergegeven of niet. Als u wilt weergeven, kunt u het argument opgeven als TRUE of anders FALSE.

Voorbeelden om gegevens te filteren met VBA

Voorbeeld # 1 - Filter toepassen of verwijderen op de gegevens

Als u de filteroptie op de gegevens wilt toepassen, kunnen we deze optie uit- en inschakelen. Kijk bijvoorbeeld naar de onderstaande gegevensafbeelding.

Stap 1: Gegevensbereik leveren

Om eerst de filteroptie te activeren, moeten we ons gegevensbereik opgeven. In de bovenstaande afbeelding zijn onze gegevens verspreid over A1 tot G31, dus lever dit bereik aan met behulp van een RANGE-object.

Code:

Sub Filter_Example () Bereik ("A1: G31") End Sub
Stap 2: Open vervolgens de AutoFilter-functie

Ga nu naar de AutoFilter-functie voor dit bereik.

Code:

Sub Filter_Example () Bereik ("A1: G31") AutoFilter End Sub
Stap 3: Voer de code uit om het filter in te schakelen

Dat is alles. Voer deze code uit om het autofilter in te schakelen.

Deze code werkt als een schakelaar en als het filter niet wordt toegepast, is het van toepassing. Als het al is toegepast, wordt het verwijderd.

Voorbeeld # 2 - Filter specifieke waarden

Nu zullen we zien hoe we de parameters van de AutoFilter-optie kunnen gebruiken. Neem dezelfde gegevens als hierboven. Nu moeten we bijvoorbeeld alle 'mannelijke' geslachtsnamen eruit filteren.

Stap 1: Selecteer bereik en open autofilterfunctie
Stap 2: Selecteer vervolgens Veld

In het eerste argument van de functie, dwz Veld, moeten we de kolomverwijzing vermelden die we willen filteren. In dit voorbeeld moeten we alleen 'Mannelijke' kandidaten filteren, dit is kolom 'C', dus kolomnummer is 3.

Stap 3: Noem nu criteria

Nu moeten we voor dit aangeleverde Veld Criteria 1 vermelden, dwz welke waarde we moeten filteren in het genoemde Veld. We moeten "Man" uit deze kolom filteren.

Code:

Sub Filter_Example () Bereik ("A1: G31"). AutoFilter-veld: = 3, Criteria1: = "Mannelijk" End Sub
Stap 4: En voer de code uit

Ok, dat is alles. Deze code filtert nu alleen "mannelijke" kandidaten.

Voorbeeld # 3 - Gebruik van 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

Geef nu in de WITH-instructie de eerste criteria op die moeten worden gefilterd.

Code:

Sub Filter_Example () Met bereik ("A1: G31"). AutoFilter-veld: = 4, Criteria1: = "Graduate" Einde met End Sub

Doe nu op de volgende regel hetzelfde voor 'Land' door 'Veld' te wijzigen in 6 en Criteria in 'VS'.

Code:

Sub Filter_Example () Met bereik ("A1: G31"). AutoFilter-veld: = 4, Criteria1: = "Graduate". AutoFilter-veld: = 6, Criteria1: = "US" Einde met einde Sub

Hiermee wordt 'Graduate' alleen gefilterd voor het land 'VS'.

Dingen om te onthouden

  • Het eerste dat eerst alleen voor het genoemde celbereikfilter wordt toegepast, wordt toegepast.
  • Het veld is niets in welke kolom u de gegevens wilt filteren.
  • Als u waarden uit meer dan één kolom filtert, gebruik dan With.

Interessante artikelen...