VBA-kood andmete filtreerimiseks Excelis (8 näidet)

  • Jaga Seda
Hugh West

Excel Sort & Filter käsk on piiratud ulatusega, et Andmete filtreerimine Aga kasutades VBA saate Andmete filtreerimine laias valikus, nagu soovite. See artikkel annab teile 8 kasulikku näidet, mida saate kasutada VBA kood, et Andmete filtreerimine excelis, kasutades VBA koodid koos eluliste illustratsioonidega.

Lae alla praktiline töövihik

Võite tasuta Exceli malli siit alla laadida ja ise harjutada.

VBA kood andmete filtreerimiseks.xlsm

8 näidet VBA-koodi kasutamiseks andmete filtreerimiseks Excelis

Tutvustame kõigepealt meie andmestikku, mis esindab mõningaid õpilaste sugu, staatus ja vanus .

1. Kasutage VBA-koodi andmete filtreerimiseks Exceli tekstikriteeriumi alusel

Meie kõige esimeses näites kasutame me VBA aadressile Filter ainult Mees üliõpilased alates Sugu veergu andmekogumis.

Sammud:

  • Parempoolne klõps kohta lehe pealkiri .
  • Siis valige View Code alates Kontekstmenüü .

Varsti pärast seda, kui VBA avaneb aken.

  • Tüüp järgmine koodid selles-
 Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub 
  • Hiljem minimeerida VBA

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Filter_Data_Text() .
  • Seejärel kasutas Range omadus deklareerida meie vastavad lehe nimi ja vahemik
  • Järgmisena kasutasin AutoFilter meetod kasutada Kriteeriumid minu valikul, kus Väli:=2 tähendab veerg 2 . ja Kriteerium1:="Mees" aadressile Filter andmed, mis käsitlevad Mees.
  • Pärast seda, et avatud . Dialoogiboks "Makros , kliki järgmiselt: Arendaja> Makros.

  • Valige . Makro nimi nagu mainitud koodid .
  • Lõpuks, lihtsalt vajutage Run .

Nüüd on vaadata, et meil on ainult Meesõpilaste andmed pärast Filtreerimine .

Loe edasi: Exceli andmete filtreerimine lahtri väärtuse alusel (6 tõhusat viisi)

2. VBA-koodi rakendamine andmete filtreerimiseks mitme kriteeriumiga ühes veerus

Siin me Filter mitme kriteeriumi jaoks ühes veerus. Andmekogumi kolmandast veerust me Filter . Lõpetaja ja Pärast ülikooli lõpetamist õpilased.

Sammud:

  • Järgige kahte esimest sammu kohta esimene näide avada VBA aken .
  • Hiljem, tüüp järgmine koodid selles-
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Siis minimeerida VBA

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Filter_One_Column() .
  • Seejärel kasutas Range omadus deklareerida meie vastavad lehe nimi ja vahemik
  • Järgmisena kasutasin AutoFilter meetod kasutada Kriteeriumid minu valikul, kus Väli:=3 tähendab veerg 3 . siin, Kriteerium1:="Lõpetanud" ja Kriteerium2:="Postgraduate" aadressile Filter õpilase Staatus .
  • Lõpuks kasutasin ma Operaator:=xlOr kohaldada VÕI tingimus Filter mitme kriteeriumi puhul.
  • Sel hetkel, jälgida . kolmas samm alates esimene näide avada Makrode dialoog kast .
  • Hiljem, valige määratud Makro nimi ja vajutage Run .

Varsti pärast seda saate mitme kriteeriumi alusel filtreeritud read, nagu alloleval pildil.

Loe edasi: Mitme kriteeriumi filtreerimine Excelis (4 sobivat viisi)

3. VBA-koodi rakendamine andmete filtreerimiseks mitme kriteeriumiga erinevates veergudes Excelis

Nüüd me Filter mitme kriteeriumi puhul - Mees ja Lõpetaja õpilased.

Sammud:

  • Järgige kahte esimest sammu kohta esimene näide avada VBA
  • Hiljem, kirjutada järgmine koodid selles-
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • Pärast seda VBA akna minimeerimine .

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Filter_Different_Columns() .
  • Siis kasutasin ma Koos avalduse kasutamine Mitu veergu .
  • Seejärel kasutas Range omadus deklareerida meie vastavad lehe nimi ja vahemik
  • Järgmisena kasutasin AutoFilter meetod kasutada Kriteeriumid minu valikul, kus Väli:=2 tähendab veerg 2 ja Väli:=3 tähendab veerg 3 .
  • Siin on valitud Kriteerium1:="Mees" . Sugu veerg ja Kriteerium1:="Lõpetanud" . Staatus veergu Filter andmed pärinevad erinevad veerud .
  • Siis järgige kolmandat sammu alates esimene näide avada Dialoogiboks "Makros .
  • Hiljem, valige määratud Makro nimi ja vajutage Run .

Siin on mitme kriteeriumi väljund.

Loe edasi: Excel VBA filtreerimiseks samas veerus mitme kriteeriumi järgi (6 näidet)

4. Kasutage VBA-koodi, et filtreerida Exceli 3 parimat elementi

Selles näites filtreerime kolm parimat õpilast vastavalt nende vanus .

Sammud:

  • Järgige kahte esimest sammu kohta esimene näide avada VBA aken .
  • Siis tüüp järgmine koodid selles-
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • Pärast seda minimeerida VBA aken .

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Filter_Top3_Items() .
  • Ja siis kasutas Operaator:=xlTop10Items aadressile Filter . esikolmik andmed .
  • Nüüd järgige kolmandat sammu alates esimene näide avada Makrode dialoog kast .
  • Siis valige makro nimi nagu on nimetatud koodeksites ja vajutage Run .

Siis saadakse väljund nagu alloleval pildil-

Loe edasi: Kuidas filtreerida lahtri väärtuse alusel Exceli VBA abil (4 meetodit)

Sarnased lugemised

  • Kuidas kopeerida ja kleepida, kui Excelis rakendatakse filtrit
  • Kuidas filtreerida unikaalseid väärtusi Excelis (8 lihtsat viisi)
  • Mitme kriteeriumi filtreerimine Excelis VBAga (nii AND- kui ka OR-tüübid)
  • Kuidas kasutada tekstifiltrit Excelis (5 näidet)
  • Kuidas filtreerida kuupäeva järgi Excelis (4 kiiret meetodit)

5. Kasutage VBA-koodi, et filtreerida Excelis 50 parimat protsenti

Kasutame VBA koodid, et filtreerida ülemine viiskümmend protsenti õpilastest nende vanuse alusel .

Sammud:

  • Esiteks, Järgige kahte esimest sammu kohta esimene näide avada VBA aken .
  • Hiljem, tüüp järgmine koodid selles-
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub 
  • Minimeerida VBA aken .

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Filter_Top50_Percent() .
  • Hiljem kasutatud Operaator:=xlTop10Percent aadressile Filtreeri viiskümmend protsenti alates veerg-4 .
  • Sel hetkel, järgige kolmandat sammu alates esimene näide avada Dialoogiaknas Makros.
  • Siis valige määratud Makro nimi ja vajutage Run .

Kokku oli 7 õpilast nii et 50 protsenti , see näitab umbes kolm õpilast .

Loe edasi: Kuidas kasutada Exceli kasumiprotsendi valemit (3 näidet)

6. VBA-koodi rakendamine andmete filtreerimiseks Wildcard'i abil

Me võime kasutada Metsikmärgid-* (tärn) aadressil VBA koodid andmete filtreerimiseks Excelis. Alates Staatus veerg , me filtreerime ainult väärtused, mis sisaldavad 'Post' .

Sammud:

  • Järgige kahte esimest sammu kohta esimene näide avada VBA aken .
  • Siis kirjutada järgmine koodid selles -
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Hiljem minimeerida VBA aken .

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Filter_with_Wildcard() .
  • Seejärel kasutas Range ("B4") vahemiku määramiseks.
  • Järgmine , kasutatud AutoFilter aadressile Filter aadressil Väli:=3 tähendab veerg 3.
  • Kriteerium1:="*Post*" aadressile Filter väärtused, mis sisaldavad "Post".
  • Nüüd järgige kolmandat sammu alates esimene näide avada Dialoogiaknas Makros.
  • Valige määratud Makro nimi ja vajutage Run .

Siis saate soovitud tulemuse.

Loe edasi: Kuidas lisada filtrit Excelis (4 meetodit)

7. Embed Excel VBA filtreeritud andmete kopeerimiseks Exceli uude lehte

Näen, et minu andmestikus on mõned filtreeritud andmed. Nüüd kopeerin need uude lehte kasutades VBA . Need koodid ei tööta korralikult lehel, neid tuleb rakendada moodulis.

Sammud:

  • Vajutage Alt+F11 avada VBA

  • Seejärel klõpsake Insert> moodul aadressile avada moodul .

  • Nüüd kirjutada järgmine koodid -
 Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Copy Filtered Data").AutoFilterMode = False Then MsgBox "Noo filtered data" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub 
  • Siis minimeerida VBA

Koodide lahtimõtestamine

  • Siinkohal lõin ma Sub menetlus, Copy_Filtered_Data_NewSheet() .
  • Pärast seda deklareeritakse kahe muutuja- x Rng Nagu Range ja xWS Nagu tööleht.
  • Seejärel kasutas an IF avaldis kontrollida Filtreeritud
  • Hiljem kasutatud MsgBox väljundi näitamiseks.
  • Seejärel kasutas Worksheets("Copy Filtered Data").AutoFilter.Range valida Filtreeritud vahemik ja kasutatud Lisa uue lehe lisamiseks.
  • Lõpuks, Copy Range("G4") kopeerib Filtreeritud andmed, et uus leht .
  • Hiljem, järgige kolmandat sammu alates esimene näide avada Dialoogiboks "Makros .
  • Siis valige määratud Makro nimi ja vajutage Run .

Nüüd näete, et Excel on avanud uue lehe ja kopeerinud filtreeritud read.

Loe edasi: Exceli filtri otsetee (3 kiiret kasutust koos näidetega)

8. VBA-koodi rakendamine andmete filtreerimiseks rippmenüüde abil

Meie viimases näites teeme kõigepealt ripploendi sugude jaoks ja seejärel kasutame seda andmete filtreerimiseks. Selleks olen paigutanud soo kriteeriumid teise kohta ja teeme ripploendi sisse Lahter D14 .

Sammud:

  • Valige Lahter D14 .
  • Siis kliki järgmiselt: Andmed> Andmetööriistad> Andmete valideerimine> Andmete valideerimine.

Varsti pärast seda, kui dialoogiboks avaneb.

Valige nimekiri alates Luba rippmenüü .

Siis klõpsake ikoonil Avatud alates Allikas kasti .

Nüüd valige kriteeriumide vahemik ja vajutage nuppu Enter .

  • Sel hetkel lihtsalt vajutage OK .

Nüüd on meie drop-down nimekiri on valmis.

  • Nüüd Järgige kahte esimest sammu kohta esimene näide avada VBA aken .
  • Siis kirjutada järgmine koodid selles -
 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 If End Sub 
  • Siis VBA akna minimeerimine .

Koodide lahtimõtestamine

  • Siinkohal lõin ma Privaatne sub menetlus, Worksheet_Change(ByVal Target As Range).
  • Seejärel valisin Tööleht aadressilt Üldine ja Muuda aadressilt Deklaratsioonid .
  • Seejärel seadistage Aadress asukoha teadasaamiseks.
  • Lõpuks jooksul IF avaldus kasutas AutoFilter meetodiga Väli ja Kriteeriumid
  • Nüüd lihtsalt valige kriteeriumid rippmenüüst ja Filter aktiveeritakse .

Siin on Filtreeritud väljund pärast valimist Mees alates drop-down .

Loe edasi: Kuidas filtreerida Exceli teise lehe nimekirja järgi (2 meetodit)

Praktika sektsioon

Eespool esitatud Exceli failis saate harjutamislehe, et harjutada selgitatud viise.

Kokkuvõte

Ma loodan, et eespool kirjeldatud menetlused on piisavalt head, et kasutada VBA kood, et Filter andmed excelis. Võite vabalt küsida mis tahes küsimust kommentaaride sektsioonis ja palun andke mulle tagasisidet.

Hugh West on suurte kogemustega Exceli koolitaja ja analüütik, kellel on selles valdkonnas üle 10-aastane kogemus. Tal on raamatupidamise ja rahanduse bakalaureusekraad ning ärijuhtimise magistrikraad. Hugh’l on kirg õpetamise vastu ning ta on välja töötanud ainulaadse õpetamisviisi, mida on lihtne järgida ja mõista. Tema Exceli ekspertteadmised on aidanud tuhandetel õpilastel ja spetsialistidel üle maailma oma oskusi parandada ja karjääris silma paista. Oma ajaveebi kaudu jagab Hugh oma teadmisi maailmaga, pakkudes tasuta Exceli õpetusi ja veebikoolitusi, mis aitavad üksikisikutel ja ettevõtetel oma potentsiaali täielikult ära kasutada.