Inhoudsopgave
Excel Sorteren en filteren heeft een beperkt bereik tot Filtergegevens Maar met behulp van VBA je kunt Filtergegevens in een breed scala als je wilt. Dit artikel geeft je 8 nuttige voorbeelden om te gebruiken VBA code naar Filtergegevens in excel met behulp van VBA codes met levendige illustraties.
Download Praktijk Werkboek
U kunt het gratis Excel-sjabloon hier downloaden en zelf oefenen.
VBA-code om gegevens te filteren.xlsm8 voorbeelden van VBA-code om gegevens te filteren in Excel
Laten we eerst kennismaken met onze dataset die een aantal geslacht, status en leeftijd van de studenten .
1. VBA-code gebruiken om gegevens te filteren op basis van een tekstcriterium in Excel
In ons allereerste voorbeeld gebruiken we VBA naar Filter alleen Mannelijk studenten van de Geslacht kolom van de dataset.
Stappen:
- Klik met de rechtermuisknop op op de bladtitel .
- Dan selecteer Code weergeven van de Contextmenu .
Kort daarna, een VBA venster wordt geopend.
- Type het volgende codes erin.
Sub Filter_Data_Text() Werkbladen("Tekstcriteria").Bereik("B4").AutoFilter Veld:=2, Criteria1:="Man" Einde Sub
- Later, minimaliseer de VBA
Code Breakdown
- Hier heb ik een Sub procedure, Filter_Data_Text() .
- Gebruikte toen de Bereik om onze respectievelijke bladnaam en reeks
- Vervolgens gebruikte ik de AutoFilter-methode om te gebruiken Criteria van mijn keuze waar Veld:=2 betekent kolom 2 . en Criteria1:="Man" naar Filter de gegevens voor Man.
- Daarna, om open de Dialoogvenster Macro's , klik als volgt: Ontwikkelaar> Macros.
- Selecteer de Macro naam zoals vermeld in de codes .
- Tot slot druk op Run .
Kijk nu eens dat we alleen Gegevens van mannelijke studenten na Filteren .
Lees meer: Excel gegevens filteren op basis van celwaarde (6 efficiënte manieren)
2. VBA-code toepassen om gegevens te filteren met meerdere criteria in één kolom
Hier zullen we Filter voor meerdere criteria in één kolom. Van kolom nummer drie van de dataset, zullen we Filter voor Afgestudeerd en Postgraduaat studenten.
Stappen:
- Volg de eerste twee stappen van de eerste voorbeeld om de VBA-venster .
- Later, type het volgende codes erin.
Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Veld:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub
- Minimaliseer dan de VBA
Code Breakdown
- Hier heb ik een Sub procedure, Filter_One_Column() .
- Gebruikte toen de Bereik om onze respectievelijke bladnaam en reeks
- Vervolgens gebruikte ik de AutoFilter-methode om de Criteria van mijn keuze waar Veld:=3 betekent kolom 3 . Hier, Criteria1:="Graduate" en Criteria2:="Postgraduate" naar Filter de student Status .
- Tot slot gebruikte ik Operator:=xlOr toe te passen OF voorwaarde Filter voor meerdere criteria.
- Op dit moment, volg de derde stap van de eerste voorbeeld om de Macro's dialoog doos .
- Later, selecteer de gespecificeerde Macro naam en druk op Run .
Kort daarna krijgt u de gefilterde rijen op basis van meerdere criteria zoals in de onderstaande afbeelding.
Lees meer: Meerdere criteria filteren in Excel (4 geschikte manieren)
3. VBA-code toepassen om gegevens te filteren met meerdere criteria in verschillende kolommen in Excel
Nu zullen we Filter voor meerdere criteria- Mannelijk en Afgestudeerd studenten.
Stappen:
- Volg de eerste twee stappen van de eerste voorbeeld om de VBA
- Later, schrijf het volgende codes erin.
Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub
- Daarna het VBA-venster minimaliseren .
Code Breakdown
- Hier heb ik een Sub procedure, Filter_Different_Columns() .
- Daarna gebruikte ik de Met verklaring te gebruiken Meerdere kolommen .
- Gebruikte toen de Bereik om onze respectievelijke bladnaam en reeks
- Vervolgens gebruikte ik de AutoFilter-methode om te gebruiken Criteria van mijn keuze waar Veld:=2 betekent kolom 2 en Veld:=3 betekent kolom 3 .
- Hier, geselecteerde Criteria1:="Man" voor Geslacht kolom en Criteria1:="Graduate" voor Status kolom naar Filter gegevens van verschillende kolommen .
- Dan volg de derde stap van de eerste voorbeeld om de Dialoogvenster Macro's .
- Later, selecteer de gespecificeerde Macro naam en druk op Run .
Hier is de uitvoer van de meervoudige criteria.
Lees meer: Excel VBA om in dezelfde kolom te filteren op meerdere criteria (6 voorbeelden)
4. VBA-code gebruiken om top 3 items in Excel te filteren
In dit voorbeeld filteren we de top drie studenten volgens hun leeftijd .
Stappen:
- Volg de eerste twee stappen van de eerste voorbeeld om de VBA-venster .
- Dan type het volgende codes erin.
Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Veld:=4, Criteria1:="3", Operator:=xlTop10Items Einde Sub
- Daarna minimaliseer je de VBA-venster .
Code Breakdown
- Hier heb ik een Sub procedure, Filter_Top3_Items() .
- En gebruikte toen Operator:=xlTop10Items naar Filter voor de top drie gegevens .
- Nu volg de derde stap van de eerste voorbeeld om de Macro's dialoog doos .
- Dan selecteer de naam van de macro zoals vermeld in de codes en druk op Run .
Dan krijg je de uitvoer zoals in de onderstaande afbeelding-
Lees meer: Filteren op basis van celwaarde met Excel VBA (4 methoden)
Vergelijkbare lezingen
- Hoe kopiëren en plakken wanneer een filter wordt toegepast in Excel
- Hoe unieke waarden te filteren in Excel (8 eenvoudige manieren)
- Meerdere criteria filteren in Excel met VBA (zowel AND als OR types)
- Tekstfilter in Excel gebruiken (5 voorbeelden)
- Filteren op datum in Excel (4 snelle methodes)
5. Gebruik VBA-code om top 50-percentages te filteren in Excel
Laten we VBA codes om de top vijftig procent van studenten gebaseerd op hun leeftijd .
Stappen:
- Eerst, Volg de eerste twee stappen van de eerste voorbeeld om de VBA-venster .
- Later, type het volgende codes erin.
Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Veld:=4, Criteria1:="50", Operator:=xlTop10Percent Einde Sub
- Minimaliseer de VBA-venster .
Code Breakdown
- Hier heb ik een Sub procedure, Filter_Top50_Percent() .
- Later, gebruikte Operator:=xlTop10Percent naar Filter de top vijftig procent van kolom-4 .
- Op dit moment, volg de derde stap van de eerste voorbeeld om de Macro's dialoogvenster.
- Dan selecteer de gespecificeerde Macro naam en druk op Run .
Er was een totaal van 7 studenten dus voor 50 procent het toont ongeveer drie studenten .
Lees meer: Hoe winstpercentage-formule gebruiken in Excel (3 voorbeelden)
6. VBA-code toepassen om gegevens te filteren met een jokerteken
We kunnen Jokertekens-* (sterretje) in VBA-codes om gegevens te filteren in Excel. Vanuit de Statuskolom filteren we alleen de waarden die "Post" bevatten .
Stappen:
- Volg de eerste twee stappen van de eerste voorbeeld om de VBA-venster .
- Dan schrijf het volgende codes erin.
Sub Filter_met_Wildcard() ActiveSheet.Range("B4").AutoFilter Veld:=3, Criteria1:="*Post*" Einde Sub
- Later, minimaliseer de VBA-venster .
Code Breakdown
- Hier heb ik een Sub procedure, Filter_met_Wildcard() .
- Dan gebruikt Bereik ("B4") om het bereik in te stellen.
- Volgende , gebruikte AutoFilter naar Filter in Veld:=3 betekent kolom 3.
- Criteria1:="*Post*" naar Filter de waarden die "Post" bevatten.
- Nu volg de derde stap van de eerste voorbeeld om de Macro's dialoogvenster.
- Selecteer de gespecificeerde Macro naam en druk op Run .
Dan krijg je de gewenste output.
Lees meer: Filter toevoegen in Excel (4 methoden)
7. Embed Excel VBA om gefilterde gegevens te kopiëren naar een nieuw blad in Excel
Zie dat er een aantal gefilterde gegevens in mijn dataset staan. Nu kopieer ik ze naar een nieuw blad met behulp van VBA . Deze codes zullen niet goed werken in het blad, u zult ze moeten toepassen in de module.
Stappen:
- Druk op Alt+F11 om de VBA
- Klik dan op Invoegen> Module naar een module openen .
- Nu schrijf het volgende codes -
Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet Als Worksheets("Copy Filtered Data").AutoFilterMode = False Dan MsgBox "Noo gefilterde gegevens" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub
- Minimaliseer dan de VBA
Code Breakdown
- Hier heb ik een Sub procedure, Copy_Filtered_Data_NewSheet() .
- Daarna verklaarde twee-variabele- x Rng Als Bereik en xWS Als werkblad.
- Dan gebruikt een IF-instructie om te controleren Gefilterd
- Later, gebruikte MsgBox om de uitvoer te tonen.
- Dan gebruikt Werkbladen("Kopieer gefilterde gegevens").AutoFilter.Bereik om de Gefilterd en gebruikt Toevoegen om een nieuw blad toe te voegen.
- Eindelijk, Kopieer Range("G4") zal de Gefilterd gegevens naar de nieuw blad .
- Later, volg de derde stap van de eerste voorbeeld om de Dialoogvenster Macro's .
- Dan selecteer de gespecificeerde Macro naam en druk op Run .
Zie nu dat Excel een nieuw blad heeft geopend en de gefilterde rijen heeft gekopieerd.
Lees meer: Sneltoets voor Excel Filter (3 snelle toepassingen met voorbeelden)
8. VBA-code toepassen om gegevens te filteren met behulp van een vervolgkeuzelijst
In ons laatste voorbeeld maken we eerst een keuzelijst voor geslachten en gebruiken die dan om gegevens te filteren. Daarvoor heb ik de geslachtscriteria op een andere plaats gezet en maken we een keuzelijst in Cel D14 .
Stappen:
- Selecteer Cel D14 .
- Dan klik als volgt: Data> Data Tools> Data Validation> Data Validation.
Kort daarna, een dialoogvenster gaat open.
Selecteer lijst van de Dropdown toestaan .
Dan klik op het pictogram Openen van de Bron doos .
Nu selecteer het criteriabereik en druk op de Enter knop .
- Op dit moment, net druk op OK .
Nu onze uitklapbaar lijst is klaar.
- Nu Volg de eerste twee stappen van de eerste voorbeeld om de VBA-venster .
- Dan schrijf het volgende codes erin.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$14" Then If Range("D14") = "All" Then Range("B4").AutoFilter Else Range("B4").AutoFilter Field:=2, Criteria1:=Range("D14") End If End Sub
- Dan het VBA-venster minimaliseren .
Code Breakdown
- Hier heb ik een Private Sub procedure, Worksheet_Change(ByVal Target As Range).
- Dan heb ik geselecteerd Werkblad van Algemeen en Verander van Verklaringen .
- Stel dan de Adres om de locatie te weten.
- Eindelijk binnen de ALS verklaring gebruikte de AutoFilter methode met Veld en Criteria
- Nu alleen nog selecteer criteria uit de vervolgkeuzelijst en de Filter wordt geactiveerd .
Hier is de Gefilterd uitvoer na selectie van Mannelijk van de uitklapbaar .
Lees meer: Hoe te filteren op lijst in een ander blad in Excel (2 methoden)
Praktijk Sectie
U krijgt een oefenblad in het hierboven gegeven Excel-bestand om de uitgelegde manieren te oefenen.
Conclusie
Ik hoop dat de hierboven beschreven procedures goed genoeg zijn om te gebruiken VBA code naar Filter Voel je vrij om vragen te stellen in de commentaarsectie en geef me feedback.