VBA-kode for å filtrere data i Excel (8 eksempler)

  • Dele Denne
Hugh West

Excel Sorter & Filterkommando har et begrenset område til Filter data . Men ved å bruke VBA kan du Filtre data i et bredt spekter som du ønsker. Denne artikkelen vil gi deg 8 nyttige eksempler på bruk av VBA -kode for å filtrere data i excel ved å bruke VBA koder med levende illustrasjoner.

Last ned øvelsesarbeidsbok

Du kan laste ned den gratis Excel-malen herfra og øve på egen hånd.

VBA-kode for å filtrere data.xlsm

8 eksempler på bruk av VBA-kode for å filtrere data i Excel

La oss først bli introdusert til datasettet vårt som representerer noen studenters kjønn, status og Alder .

1. Bruk VBA-kode for å filtrere data basert på et tekstkriterium i Excel

I vårt aller første eksempel bruker vi VBA for å filtrere kun Mannlige studenter fra kolonnen Kjønn i datasettet.

Trinn:

  • Høyreklikk arktittelen .
  • Velg deretter Vis kode fra Kontekstmenyen .

Snart etterpå åpnes et VBA vindu.

  • Skriv inn følgende koder i it-
2761
  • Senere, minimer VBA

Kodeoversikt

  • Her opprettet jeg en Sub prosedyre, Filter_Data_Text() .
  • Deretter brukte jeg Range -egenskap for å erklære vårt respektive arknavn og område
  • Deretter brukte jeg Autofiltreringsmetoden for å bruke Kriterier etter eget valg der Felt:=2 betyr kolonne 2 . Og Criteria1:=”Mann” for å filtrere dataene for Mann.
  • Deretter for å åpne dialogboksen Makroer , klikk som følger: Utvikler > Makroer.

  • Velg Makronavnet som nevnt i kodene .
  • Til slutt er det bare å trykke Kjør .

Se nå at vi bare har Mannlige elevers data etter filtrering .

Les mer: Excel-filterdata basert på Celleverdi (6 effektive måter)

2. Bruk VBA-kode for å filtrere data med flere kriterier i én kolonne

Her skal vi filtrere for flere kriterier i én kolonne. Fra kolonne nummer tre i datasettet Filtrer vi for Graduate og Postgraduate studenter.

Trinn:

  • Følg de to første trinnene i første eksempel for å åpne VBA-vinduet .
  • Senere, skriv inn følgende koder i den-
2809
  • Deretter minimerer VBA

Kodeoversikt

  • Her opprettet jeg en Sub prosedyre, Filter_One_Column() .
  • Bruket deretter egenskapen Range til å deklarere vårt respektive arknavn og område
  • Deretter brukte jeg denAutoFilter-metode for å bruke Kriterier jeg velger der Felt:=3 betyr kolonne 3 . Her Criteria1:=”Graduate” og Criteria2:=”Postgraduate” for å filtrere studentens Status .
  • Til slutt brukte jeg Operator:=xlOr for å bruke ELLER betingelse Filter for flere kriterier.
  • På dette tidspunktet øyeblikk, følg det tredje trinnet fra det første eksempelet for å åpne Makrodialogboksen boksen .
  • Senere, velg det angitte Makronavnet og trykk Kjør .

Like etter vil du få de filtrerte radene basert på flere kriterier som bildet nedenfor.

Les mer: Filtrer flere kriterier i Excel (4 egnede måter)

3. Bruk VBA-kode for å filtrere data med flere kriterier i forskjellige kolonner i Excel

Nå skal vi filtrere for flere kriterier- Mann og utdannet elever.

Trinn:

  • Følg de to første trinnene i det første eksempelet for å åpne VBA
  • Senere, skriv følgende koder i den-
3043
  • Etter at som minimerer VBA-vinduet .

Kodeoversikt

  • Her opprettet jeg en Sub prosedyre, Filter_Different_Columns() .
  • Deretter brukte jeg With -setningen for å bruke Multiple Column .
  • Bruket deretter Range egenskap for å deklarere vårt respektive arknavn og område
  • Deretter brukte jeg Autofilter-metoden for å bruke Kriterier for mitt valg hvor Felt:=2 betyr kolonne 2 og Felt:=3 betyr kolonne 3 .
  • Her , valgt Kriterier1:=”Mann” for Kjønn -kolonnen og Kriterier1:=”Graduate” for Status -kolonnen til Filter data fra forskjellige kolonner .
  • Deretter følg det tredje trinnet fra første eksempel for å åpne Makrodialogboks .
  • Senere velg det angitte Makronavnet og trykk Kjør .

Her er resultatet av de flere kriteriene.

Les mer: Excel VBA å filtrere i samme kolonne etter flere kriterier (6 eksempler)

4. Bruk VBA-kode for å filtrere topp 3-elementer i Excel

I dette eksemplet vil vi filtrere topp tre elevene i henhold til deres alder .

Trinn:

  • Følg de to første trinnene i første eksempel for å åpne VBA-vinduet .
  • Deretter skriver du inn følgende koder i den-
4248
  • Deretter minimerer VBA-vindu .

Kodesammenbrudd

  • Her, jeg opprettet en Sub prosedyre, Filter_Top3_Items() .
  • Og brukte deretter Operator:=xlTop10Items til Filter for de tre beste data .
  • følg det tredje trinnet fra første eksempel for å åpne Makrodialog boks .
  • Deretter velger du Makronavnet som nevnt i kodene og trykker Kjør .

Da vil du få utdata som bildet nedenfor-

Les mer: Hvordan filtrere basert på celleverdi ved hjelp av Excel VBA (4 metoder)

Lignende avlesninger

  • Hvordan kopiere og lime inn når Filter brukes i Excel
  • Hvordan filtrere unike verdier i Excel (8 enkle måter)
  • Filtrer flere kriterier i Excel med VBA (begge OG- og ELLER-typer)
  • Hvordan bruke tekstfilter i Excel (5 eksempler)
  • Hvordan filtrere etter dato i Excel (4 raske Metoder)

5. Bruk VBA-kode for å filtrere topp 50 prosenter i Excel

La oss bruke VBA koder til å filtrere topp femti prosent av elevene basert på alderen deres .

Trinn:

  • Først Følg de to første trinnene i det første eksempelet for å åpne VBA-vinduet .
  • Senere skriv inn følgende koder i det-
6949
  • Minimer VBA-vinduet .

Kodesammenbrudd

  • Her opprettet jeg en Sub prosedyre, Filter_Top50_Percent() .
  • Senere brukte Operator:=xlTop10Percent til Filtrer topp femti prosent fra kolonne-4 .
  • For øyeblikket følg det tredje trinnet fra første eksempel for å åpne 1>Makrodialogboks.
  • Deretter velger du det angitte Makronavnet og trykker Kjør .

Det var totalt 7 elever , så for 50 prosent viser det omtrent tre elever .

Les mer: Hvordan bruke formelen for fortjenesteprosent i Excel (3 eksempler)

6 . Bruk VBA-kode for å filtrere data ved å bruke jokertegn

Vi kan bruke jokertegn-* (stjerne) i VBA-koder for å filtrere data i Excel. Fra Status-kolonnen filtrerer vi bare verdiene som inneholder «Innlegg» .

Trinn:

  • Følg de to første trinnene i første eksempel for å åpne VBA-vinduet .
  • Skriv deretter følgende koder i den-
6991
  • Minimer VBA-vinduet senere.

Kodeoversikt

  • Her opprettet jeg en Sub prosedyre, Filter_with_Wildcard() .
  • Brukt deretter Range (“B4”) for å angi området.
  • Next , used AutoFilter til Filtrer i Felt:=3 betyr kolonne 3.
  • Kriterier1:=”*Innlegg *” for å filtrere verdiene som inneholder 'Innlegg'.
  • følg det tredje trinnet fra den første eksempel for å åpne dialogen Makroerboks.
  • Velg det angitte Makronavnet og trykk Kjør .

Da vil du få ønsket utgang.

Les mer: Hvordan legge til filter i Excel (4 metoder) )

7. Bygg inn Excel VBA for å kopiere filtrerte data i et nytt ark i Excel

Se at det er noen filtrerte data i datasettet mitt. Nå skal jeg kopiere dem til et nytt ark med VBA . Disse kodene vil ikke fungere ordentlig i arket, du må bruke dem i modulen.

Trinn:

  • Trykk Alt+F11 for å åpne VBA

  • Deretter klikker du Sett inn > Modul for å åpne en modul .

  • Skriv følgende koder
3360
  • Deretter minimerer VBA

Kodeoversikt

  • Her opprettet jeg en Sub prosedyre, Copy_Filtered_Data_NewSheet() .
  • Etter det erklært to-variabel- x Rng som område og xWS som regneark.
  • Bruket deretter en IF-setning for å sjekk Filtrert
  • Senere, brukte MsgBox for å vise utdata.
  • Bruket deretter Worksheets(“Kopier filtrerte data”). AutoFilter .Range for å velge Filtered -området og brukte Add for å legge til et nytt ark.
  • Til slutt, Copy Range(“G4”) vil kopiere filtrerte data til det nye arket .
  • Senere følgtredje trinn fra første eksempel for å åpne Makro-dialogboksen .
  • Deretter velger du det angitte Makronavnet og trykk Kjør .

Nå ser du at Excel har åpnet et nytt ark og kopiert de filtrerte radene.

Les mer: Snarvei for Excel-filter (3 raske bruksområder med eksempler)

8. Bruk VBA-kode for å filtrere data ved å bruke rullegardinlisten

I vårt siste eksempel lager vi en rullegardinliste for kjønn først, så bruker vi den til å filtrere data. For det har jeg plassert kjønnskriteriene et annet sted, og vi lager en rullegardinliste i celle D14 .

Trinn:

  • Velg Celle D14 .
  • Deretter klikker du som følger: Data > Dataverktøy > Datavalidering > Datavalidering.

Snart etter åpnes en dialogboks .

Velg Liste fra rullegardinmenyen Tillat .

Deretter klikker du på Åpne-ikonet fra Kilde-boksen .

velg kriterieområdet og trykk på Enter-knappen .

  • Akkurat nå trykker du OK .

Nå er rullegardinlisten vår klar.

  • Følg de to første trinnene i det første eksemplet for å åpne VBA-vinduet .
  • Deretter skriver du følgende koder i den-
7276
  • Deretter minimerer du VBAvindu .

Kodeoversikt

  • Her opprettet jeg en Privat Sub prosedyre, Worksheet_Change(ByVal Target As Range).
  • Deretter valgte jeg Arbeidsark fra Generelt og Endre fra Erklæringer .
  • Sett deretter Adressen for å vite plasseringen.
  • Til slutt i HVIS -setningen brukte AutoFilter -metoden med Felt og Kriterier
  • velger du kriterier fra rullegardinlisten og filteret vil aktiveres .

Her er Filtrert utdata etter å ha valgt Mann fra rullegardinmenyen .

Les mer: Hvordan filtrere etter liste i et annet ark i Excel (2 metoder)

Praksisdel

Du vil få et øvingsark i Excel-filen ovenfor for å øve på de forklarte måtene.

Konklusjon

Jeg håper prosedyrene beskrevet ovenfor vil være gode nok til å bruke VBA kode for å filtrere data i excel. Still gjerne spørsmål i kommentarfeltet og gi meg tilbakemelding.

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.