VBA AutoFilter

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.

Als u een regelmatige gebruiker bent, 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 in het geselecteerde bereik D 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 wilt weergeven WAAR is het argument, zo niet ONWAAR is het argument.

Filter toepassen met VBA AutoFilter? (met voorbeeld)

U kunt deze VBA AutoFilter-sjabloon hier downloaden - VBA AutoFilter-sjabloon

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 autofilter-optie toe.

Code:

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

We selecteren geen waarden met behulp van een autofilter, maar passen het filter op dit moment alleen toe.

Voer de code uit met behulp van de F5-toets of handmatig wordt een filter voor het geselecteerde bereik ingevoegd.

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: criterium 1 is niets anders dan wat we willen filteren uit de 5e 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 u meerdere elementen kunt filteren. Stel dat u naast “Finance” ook de “Sales” -afdeling wilt filteren, zodat we dit kunnen doen door Operators te gebruiken.

Stap 1: Na het toepassen van de eerste criteria in het volgende argument selecteert u de operator als “xlOr”.

Code:

 Sub AutoFilter_Example2 () Bereik ("A1: E25"). AutoFilter-veld: = 5, Criteria1: = "Financiën", Operator: = xlOr End Sub 

Stap 2: Vermeld nu in criterium 2 de waarde als "Verkoop".

Code:

 Sub AutoFilter_Example2 () Bereik ("A1: E25"). AutoFilter-veld: = 5, Criteria1: = "Financiën", Operator: = xlOr, Criteria2: = "Verkoop" End Sub 

Step 3: Ok, done run this code using 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 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()       With Range("A1:E25") .AutoFilter Field:=5, Criteria1:="Finance" .AutoFilter Field:=2, Criteria1:=">25000", Operator:=xlAnd, Criteria2:="<40000"       End With End Sub 

This will filter out two columns.

Run this code using the F5 key or you can run manually.

Things to Remember

  • Try different combinations under Operator to get the knowledge of VBA AutoFilter.
  • If you are not sure what to put in try using the macro recorder.
  • If you want to filter out text values then you need to supply them in double-quotes.
  • Use WITH statement to apply more than one column filter.