Koda VBA za filtriranje podatkov v programu Excel (8 primerov)

  • Deliti To
Hugh West

Excel Ukaz Razvrsti in filtriraj ima omejeno območje do Filtriranje podatkov . Toda z uporabo VBA lahko Filtriranje podatkov v širokem razponu, kot želite. V tem članku boste našli 8 uporabnih primerov, ki jih lahko uporabite VBA kodo za Filtriranje podatkov v Excelu z uporabo VBA kode z nazornimi ilustracijami.

Prenesi delovni zvezek za prakso

Brezplačno predlogo Excel lahko prenesete s tega mesta in jo uporabite sami.

Koda VBA za filtriranje podatkov.xlsm

8 primerov za uporabo kode VBA za filtriranje podatkov v Excelu

Najprej se seznanimo z našim naborom podatkov, ki predstavlja nekaj spol, status in starost učencev .

1. Uporaba kode VBA za filtriranje podatkov na podlagi besedilnih meril v Excelu

V našem prvem primeru bomo uporabili VBA na . Filter samo Moški študenti iz Spol stolpec podatkovnega niza.

Koraki:

  • Z desno tipko miške kliknite na naslov lista .
  • Nato izberite Prikaži kodo iz Kontekstni meni .

Kmalu po tem je bila VBA odpre se okno.

  • Tip naslednje kode v njem...
 Sub Filter_Data_Text() Delovni listi("Kriteriji besedila").Razpon("B4").AutoFilter Polje:=2, Kriterij1:="Moški" End Sub 
  • Kasneje zmanjšajte VBA

Razčlenitev kode

  • Tukaj sem ustvaril Pod postopek, Filter_Data_Text() .
  • Nato uporabite Razpon lastnost, s katero lahko prijavimo naše ustrezne ime lista in . obseg
  • Nato sem uporabil metoda AutoFilter za uporabo Merila po moji izbiri, kjer Polje:=2 pomeni stolpec 2 . in Kriterij1:="Moški" na . Filter podatke za Moški.
  • Po tem, da odprta . Pogovorno okno Makroji , kliknite na naslednji način: Razvijalec> Makroji.

  • Izberite . Ime makra kot je navedeno v kode .
  • Končno, samo pritisnite Run .

Zdaj si oglejte, da smo dobili le Podatki o študentih moškega spola po Filtriranje .

Preberite več: Excelovo filtriranje podatkov na podlagi vrednosti celice (6 učinkovitih načinov)

2. Uporaba kode VBA za filtriranje podatkov z več merili v enem stolpcu

Tukaj bomo Filter za več meril v enem stolpcu. Iz stolpca številka tri podatkovnega niza bomo Filter za Podiplomski študij in . Podiplomski študij študenti.

Koraki:

  • Izvedite prva dva koraka o prvi primer da odprete Okno VBA .
  • Kasneje, vrsta naslednje kode v njem...
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Nato minimizirajte VBA

Razčlenitev kode

  • Tukaj sem ustvaril Pod postopek, Filter_One_Column() .
  • Nato uporabite Razpon lastnost, s katero lahko prijavimo naše ustrezne ime lista in . obseg
  • Nato sem uporabil metoda AutoFilter za uporabo Merila po moji izbiri, kjer Polje:=3 pomeni stolpec 3 . tukaj, Kriterij1:="Diplomant" in . Kriterij2:="Podiplomski študij" na . Filter učenčevega Status .
  • Nazadnje sem uporabil Upravljavec:=xlOr za uporabo ALI stanje Filter za več meril.
  • V tem trenutku, sledite . tretji korak iz prvi primer da odprete Pogovorno okno Makroji škatla .
  • Kasneje, izberite določen Ime makra in . pritisnite Run .

Kmalu zatem boste dobili filtrirane vrstice na podlagi več meril, kot na spodnji sliki.

Preberite več: Filtriranje več meril v Excelu (4 primerni načini)

3. Uporaba kode VBA za filtriranje podatkov z več merili v različnih stolpcih v programu Excel

Zdaj bomo Filter za več meril. Moški in . Podiplomski študij študenti.

Koraki:

  • Izvedite prva dva koraka o prvi primer da odprete VBA
  • Kasneje, napišite naslednje kode v njem...
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • Po tem zmanjšajte okno VBA .

Razčlenitev kode

  • Tukaj sem ustvaril Pod postopek, Filter_Different_Columns() .
  • Nato sem uporabil S spletno stranjo izjava za uporabo Več stolpcev .
  • Nato uporabite Razpon lastnost, s katero lahko prijavimo naše ustrezne ime lista in . obseg
  • Nato sem uporabil metoda AutoFilter za uporabo Merila po moji izbiri, kjer Polje:=2 pomeni stolpec 2 in . Polje:=3 pomeni stolpec 3 .
  • Tu so izbrani Kriterij1:="Moški" za Spol stolpec in Kriterij1:="Diplomant" za Status v stolpec Filter podatki iz različni stolpci .
  • Nato sledite tretjemu koraku iz prvi primer da odprete Pogovorno okno Makroji .
  • Kasneje, izberite določen Ime makra in . pritisnite Run .

Tukaj je rezultat več meril.

Preberite več: Excel VBA za filtriranje v istem stolpcu po več kriterijih (6 primerov)

4. Uporabite kodo VBA za filtriranje treh najboljših elementov v programu Excel

V tem primeru bomo filtrirali trije najboljši učenci v skladu z njihovimi starost .

Koraki:

  • Izvedite prva dva koraka o prvi primer da odprete Okno VBA .
  • Nato vrsta naslednje kode v njem...
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • Po tem zmanjšajte Okno VBA .

Razčlenitev kode

  • Tukaj sem ustvaril Pod postopek, Filter_Top3_Items() .
  • In nato uporabil Operater:=xlTop10Items na . Filter za trije najboljši podatki .
  • Zdaj sledite tretjemu koraku iz prvi primer da odprete Pogovorno okno Makroji škatla .
  • Nato izberite ime makra kot je navedeno v kodeksih in pritisnite Run .

Nato boste dobili izhod, kot je spodnja slika -

Preberite več: Kako filtrirati na podlagi vrednosti celice z uporabo programa Excel VBA (4 metode)

Podobna branja

  • Kako kopirati in prilepiti, ko je v Excelu uporabljen filter
  • Kako filtrirati edinstvene vrednosti v Excelu (8 preprostih načinov)
  • Filtriranje več meril v Excelu z VBA (obe vrsti AND in OR)
  • Kako uporabiti besedilni filter v Excelu (5 primerov)
  • Kako filtrirati po datumu v Excelu (4 hitre metode)

5. Uporaba kode VBA za filtriranje 50 odstotkov v Excelu

Uporabimo VBA kode za filtriranje zgornjih petdeset odstotkov študentov glede na njihovo starost. .

Koraki:

  • Najprej, Izvedite prva dva koraka o prvi primer da odprete Okno VBA .
  • Kasneje, vrsta naslednje kode v njem...
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub 
  • Zmanjšajte na najmanjšo možno mero Okno VBA .

Razčlenitev kode

  • Tu sem ustvaril Pod postopek, Filter_Top50_Percent() .
  • Pozneje je bil uporabljen Operater:=xlTop10Percent na . Filtriranje petdeset odstotkov najboljših iz stolpec-4 .
  • V tem trenutku, sledite tretjemu koraku iz prvi primer da odprete Pogovorno okno Makroji.
  • Nato izberite določen Ime makra in . pritisnite Run .

Skupaj je bilo 7 študentov tako za 50 odstotkov , kaže približno trije učenci .

Preberite več: Kako uporabiti formulo odstotka dobička v Excelu (3 primeri)

6. Uporaba kode VBA za filtriranje podatkov z uporabo nadomestnih znakov

Uporabimo lahko Zaščitni znaki - * (zvezdica) na spletnem mestu Kode VBA za filtriranje podatkov v Excelu. Stolpec stanja , bomo filtrirali samo vrednosti, ki vsebujejo 'Post'. .

Koraki:

  • Izvedite prva dva koraka o prvi primer da odprete Okno VBA .
  • Nato napišite naslednje kode v njem...
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Kasneje zmanjšajte Okno VBA .

Razčlenitev kode

  • Tu sem ustvaril Pod postopek, Filter_with_Wildcard() .
  • Nato uporabite Razpon ("B4") za nastavitev območja.
  • Naslednji , uporabljen AutoFilter na . Filter na spletnem mestu Polje:=3 pomeni stolpec 3.
  • Kriterij1:="*Post*" na . Filter vrednosti, ki vsebujejo "Post".
  • Zdaj sledite tretjemu koraku iz prvi primer da odprete Pogovorno okno Makroji.
  • Izberite določen Ime makra in . pritisnite Run .

Potem boste dobili želeni rezultat.

Preberite več: Kako dodati filter v Excelu (4 metode)

7. Vgradnja programa Excel VBA za kopiranje filtriranih podatkov v nov list v programu Excel

Vidite, da je v moji zbirki podatkov nekaj filtriranih podatkov. Zdaj jih bom kopiral v nov list z uporabo VBA . Te kode ne bodo pravilno delovale v listu, temveč jih boste morali uporabiti v modulu.

Koraki:

  • Pritisnite Alt+F11 da odprete VBA

  • Nato kliknite Vstavljanje> Modul na . odpreti modul .

  • Zdaj napišite naslednje kode -
 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 
  • Nato minimizirajte VBA

Razčlenitev kode

  • Tukaj sem ustvaril Pod postopek, Copy_Filtered_Data_NewSheet() .
  • Po tem je bila razglašena dve spremenljivki - x Rng Kot območje in xWS Kot delovni list.
  • Nato uporabite . Izjava IF preveriti Filtrirano
  • Pozneje je bil uporabljen MsgBox za prikaz izpisa.
  • Nato uporabite Delovni listi("Kopiranje filtriranih podatkov").AutoFilter.Range da izberete Filtrirano obseg in uporabljen Dodaj za dodajanje novega lista.
  • Končno, Kopiraj Območje ("G4") bo kopiral Filtrirano podatke v nov list .
  • Kasneje, sledite tretjemu koraku iz prvi primer da odprete Pogovorno okno Makroji .
  • Nato izberite določen Ime makra in . pritisnite Run .

Oglejte si, da je Excel odprl nov list in kopiral filtrirane vrstice.

Preberite več: Bližnjica za Excelov filter (3 hitre uporabe s primeri)

8. Uporaba kode VBA za filtriranje podatkov z uporabo spustnega seznama

V našem zadnjem primeru bomo najprej naredili spustni seznam za spol, nato pa ga bomo uporabili za filtriranje podatkov. V ta namen sem merila za spol postavil na drugo mesto in naredili bomo spustni seznam v Celica D14 .

Koraki:

  • Izberite Celica D14 .
  • Nato kliknite na naslednji način: Podatki> Orodja za podatke> Potrjevanje podatkov> Potrjevanje podatkov.

Kmalu po tem je bila pogovorno okno se bo odprlo.

Izberite seznam iz Dovoli spustni seznam .

Nato kliknite ikono Odpri iz Polje vira .

Zdaj izberite območje meril in . pritisnite gumb Enter .

  • V tem trenutku samo pritisnite OK .

Zdaj je naš spustni seznam seznam je pripravljen.

  • Zdaj Izvedite prva dva koraka o prvi primer da odprete Okno VBA .
  • Nato napišite naslednje kode v njem...
 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 
  • Nato zmanjšajte okno VBA .

Razčlenitev kode

  • Tukaj sem ustvaril Zasebni podsklop postopek, Worksheet_Change (ByVal Target As Range).
  • Nato sem izbral Delovni list s spletne strani Splošno in . Sprememba s spletne strani Izjave .
  • Nato nastavite Naslov da bi vedeli, kje se nahaja.
  • Nazadnje v okviru IF izjava je uporabila AutoFilter metodo z Polje in . Merila
  • Zdaj samo izberite merila s spustnega seznama. in Filter se aktivira .

Tukaj je Filtrirano izhod po izbiri Moški iz spustni seznam .

Preberite več: Kako filtrirati po seznamu v drugem listu v Excelu (2 metodi)

Oddelek za prakso

V zgoraj navedeni Excelovi datoteki boste dobili vadbeni list, na katerem boste vadili razložene načine.

Zaključek

Upam, da bodo zgoraj opisani postopki dovolj dobri za uporabo VBA kodo na Filter Vabljeni, da v razdelku za komentarje postavite kakršno koli vprašanje in mi posredujete povratne informacije.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.