VBA AutoFilter - Hoe gebruik je VBA AutoFilter-criteria om gegevens te filteren?

Inhoudsopgave

Excel VBA AutoFilter

AutoFilter in VBA wordt gebruikt als een uitdrukking en de syntaxis ervoor als volgt Expressie. Autofilter (veld, criterium 1, operator, criterium 2, vervolgkeuzelijst) alle argumenten zijn optioneel. Het filter is handig bij het filteren van de specifieke gegevens uit de enorme gegevens.

Stel dat u een gewone gebruiker bent, dan zijn Excel-filters niet vreemd voor u. Sommige van de tools die we in het werkblad gebruiken, zijn ook geïntegreerd in VBA en de automatische filteroptie is een van de belangrijke tools die beschikbaar zijn in VBA. Zoals we allemaal weten, is Excel-filter beschikbaar op het tabblad gegevens.

Met behulp van deze filteroptie kunnen we spelen met de gegevens. Als u te maken heeft met een minimale hoeveelheid gegevens en u denkt dat de VBA-autofilteroptie niet echt nodig is, kunt u de werkbladfilteroptie blijven gebruiken.

Als u te maken heeft met een enorme hoeveelheid gegevens, kunt u een Autofilter-optie gebruiken om de processtroom te vereenvoudigen.

Syntaxis van AutoFilter-functie

AutoFilter in Excel VBA kan worden gebruikt met een bereikobject. Net als onze andere functies heeft ook dit zijn eigen syntaxis.

  • Bereik: Bereik is gewoon in welk bereik u het filter wilt toepassen.
  • Veld: Veld betekent uit welke kolom van het bereik dat u hebt geselecteerd, u de gegevens wilt filteren. Een kolom wordt van links naar rechts geteld.

Als uw bereik bijvoorbeeld van A1 tot D100 is en u een filter voor kolom D wilt toepassen, is uw veldnummer 4 omdat D in het geselecteerde bereik de vierde kolom is.

Criteria 1: In het veld heeft u geselecteerd wat u wilt filteren.

  • Operator: Als u meer dan één criterium wilt toepassen om de gegevens te filteren, moeten we operatorsymbolen gebruiken. Enkele van de operatorcodes zijn zoals hieronder.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Criteria 2: Wat is het tweede dat u naast criterium 1 wilt filteren?

  • Zichtbare vervolgkeuzelijst: Wilt u het pictogram van filterfop omlaag weergeven in de gefilterde kolom? Als u TRUE wilt weergeven, is het argument, zo niet FALSE, is het argument.

Hoe filter toe te passen met VBA AutoFilter? (met voorbeeld)

Veronderstel hieronder de gegevens waaraan u werkt.

Nu door VBA-code te gebruiken, zullen we het filter toepassen. Volg de onderstaande stappen om het filter toe te passen.

Stap 1: Start de subprocedure door de macro een naam te geven.

Code:

Sub AutoFilter_Example1 () End Sub

Stap 2: Het eerste is in welk bereik we het filter moeten toepassen. In dit geval moeten we het bereik van A1 tot E25 toepassen.

Code:

Sub AutoFilter_Example1 () Bereik ("A1: E25") End Sub

Stap 3: Nadat het bereik is geselecteerd, past u nu de automatische filteroptie toe.

Code:

Sub AutoFilter_Example1 () Bereik ("A1: E25") AutoFilter End Sub

We selecteren geen waarden met behulp van een autofilter. In plaats daarvan passen we het filter op dit moment alleen toe.

Voer de code uit met behulp van de F5-toets, of handmatig, het zal een filter voor het geselecteerde bereik invoegen.

Het heeft dus een filter op de gegevens toegepast. Nu zullen we zien hoe we de gegevens eruit kunnen filteren.

Voorbeeld # 1 - Gegevens filteren met AutoFilter

Beschouw dezelfde gegevens uit het bovenstaande voorbeeld. Nu moeten we de afdeling "Financiën" uit de afdelingskolom filteren.

Stap 1: Nadat het filter is toegepast, is het eerste argument om te vermelden uit welke kolom we de gegevens filteren. In dit geval moeten we de gegevens uit de kolom Afdeling filteren, dus kolomnummer als 5.

Code:

Sub AutoFilter_Example1 () Bereik ("A1: E25"). AutoFilter-veld: = 5, End Sub

Stap 2: Criteria 1 is niets anders dan wat we willen filter uit de 5 e kolom. Dus we moeten ‘Financiën’ eruit filteren.

Code:

Sub AutoFilter_Example1 () Bereik ("A1: E25"). AutoFilter-veld: = 5, Criteria1: = "Finance" End Sub

Dus dat is alles, voer deze code handmatig uit, of via de F5-toets, het filtert alleen "Finance" uit de lijst.

Voorbeeld # 2 - Operator in AutoFilter

We hebben gezien hoe we de enkele waarde kunnen filteren. Nu zullen we zien hoe we meerdere elementen kunnen filteren. Stel dat u naast “Finance” ook de “Sales” -afdeling wilt filteren, zodat we dit kunnen doen door Operators te gebruiken.

Stap 1: Nadat u de eerste criteria in het volgende argument heeft toegepast, selecteert u de operator als "xlOr".

Code:

Sub AutoFilter_Example2() Range("A1:E25").AutoFilter Field:=5, Criteria1:="Finance", Operator:=xlOr End Sub

Step 2: Now, in Criteria 2, mention the value as “Sales.”

Code:

Sub AutoFilter_Example2() Range("A1:E25").AutoFilter Field:=5, Criteria1:="Finance", Operator:=xlOr, Criteria2:="Sales" End Sub

Step 3: Ok, done run this code using the F5 key or manually, it will filter out both “Finance” & “Sales.”

In the Operator argument, I have used “xlOr” this will select both “Finance” & “Sales” under the filter.

Example #3 - Filter Numbers using AutoFilter

Using the Operator symbol “XlAnd,” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are>1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub

Step 2: Criteria 1 is>1000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=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 () Met bereik ("A1: E25"). AutoFilter-veld: = 5, Criteria1: = "Financiën". AutoFilter-veld: = 2, Criteria1: = "> 25000", Operator: = xlAnd, Criteria2: = " <40000 "einde met einde sub

Hierdoor worden twee kolommen uitgefilterd.

Voer deze code uit met behulp van de F5-toets, of u kunt het handmatig uitvoeren.

Dingen om te onthouden

  • Probeer verschillende combinaties onder Operator om kennis te krijgen van VBA AutoFilter.
  • Als u niet zeker weet wat u moet invoeren, probeer dan de macrorecorder te gebruiken.
  • Als u tekstwaarden wilt filteren, moet u deze tussen dubbele aanhalingstekens invoeren.
  • Gebruik de instructie WITH om meer dan één kolomfilter toe te passen.

Interessante artikelen...