VBA-koodi tietojen suodattamiseksi Excelissä (8 esimerkkiä)

  • Jaa Tämä
Hugh West

Excel Lajittelu & Suodatuskomento on rajoitettu kantama Suodata tiedot . Mutta käyttämällä VBA voit Suodata tiedot laajalla valikoimalla haluamallasi tavalla. Tämä artikkeli tarjoaa sinulle 8 hyödyllistä esimerkkiä, joita voit käyttää VBA koodi Suodata tiedot Excelissä käyttäen VBA koodit, joissa on eläviä kuvituksia.

Lataa harjoituskirja

Voit ladata ilmaisen Excel-mallin täältä ja harjoitella sitä itse.

VBA-koodi Data.xlsm:n suodattamiseksi

8 esimerkkiä VBA-koodin käyttämisestä tietojen suodattamiseen Excelissä

Tutustutaan ensin tietokokonaisuuteemme, joka edustaa joitakin opiskelijoiden sukupuoli, asema ja ikä .

1. Käytä VBA-koodia tietojen suodattamiseen tekstikriteerien perusteella Excelissä.

Ensimmäisessä esimerkissämme käytämme seuraavaa komentoa VBA osoitteeseen Suodatin vain Mies opiskelijat Sukupuoli sarakkeessa.

Vaiheet:

  • Napsauta hiiren kakkospainikkeella on arkin otsikko .
  • Sitten valitse Näytä koodi alkaen Kontekstivalikko .

Pian sen jälkeen VBA ikkuna avautuu.

  • Tyyppi seuraavat koodit siinä-
 Sub Filter_Data_Text() Worksheets("Tekstikriteerit").Range("B4").AutoFilter Field:=2, Criteria1:="Mies" End Sub 
  • Myöhemmin minimoi VBA

Koodin erittely

  • Tässä, loin Sub menettely, Filter_Data_Text() .
  • Sitten käytettiin Valikoima ominaisuus ilmoittaa meidän kunkin arkin nimi ja alue
  • Seuraavaksi käytin AutoFilter-menetelmä käyttää Kriteerit valitsemaani paikkaan, jossa Kenttä:=2 tarkoittaa sarake 2 . ja Criteria1:="Mies" osoitteeseen Suodatin tiedot Mies.
  • Sen jälkeen avoin ... Makrot-valintaikkuna , klikkaa seuraavasti: Kehittäjä> Makrot.

  • Valitse ... Makron nimi kuten mainitaan koodit .
  • Lopuksi, vain paina Run .

Katsokaa nyt, että meillä on vain Miesopiskelijoiden tiedot jälkeen Suodatus .

Lue lisää: Excel suodattaa tietoja solun arvon perusteella (6 tehokkaita tapoja)

2. Soveltaa VBA-koodia tietojen suodattamiseen useilla kriteereillä yhdessä sarakkeessa.

Täällä me Suodatin useita kriteerejä yhdessä sarakkeessa. Tietokokonaisuuden sarakkeesta numero kolme, me tulemme Suodatin osoitteessa Tutkinnon suorittanut ja Jatkotutkinto opiskelijat.

Vaiheet:

  • Seuraa kahta ensimmäistä vaihetta of the ensimmäinen esimerkki avataksesi VBA-ikkuna .
  • Myöhemmin, tyyppi seuraavat koodit siinä-
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Minimoi sitten VBA

Koodin erittely

  • Tässä, loin Sub menettely, Filter_One_Column() .
  • Sitten käytettiin Valikoima ominaisuus ilmoittaa meidän kunkin arkin nimi ja alue
  • Seuraavaksi käytin AutoFilter-menetelmä käyttää Kriteerit valitsemaani paikkaan, jossa Kenttä:=3 tarkoittaa sarake 3 ...tässä, Criteria1:="Valmistunut" ja Criteria2:="Jatkotutkinto" osoitteeseen Suodatin opiskelijan Tila .
  • Lopuksi käytin Operaattori:=xlOr hakea TAI ehto Suodatin useiden kriteerien osalta.
  • Tällä hetkellä, seuraa ... kolmas vaihe alkaen ensimmäinen esimerkki avataksesi Makrot-valintaikkuna laatikko .
  • Myöhemmin, valitse määritetty Makron nimi ja paina Run .

Pian sen jälkeen saat useiden kriteerien perusteella suodatetut rivit alla olevan kuvan mukaisesti.

Lue lisää: Suodata useita kriteerejä Excelissä (4 sopivaa tapaa)

3. Sovelletaan VBA-koodia tietojen suodattamiseen useilla kriteereillä eri sarakkeissa Excelissä.

Nyt me Suodatin useiden kriteerien osalta - Mies ja Tutkinnon suorittanut opiskelijat.

Vaiheet:

  • Seuraa kahta ensimmäistä vaihetta of the ensimmäinen esimerkki avataksesi VBA
  • Myöhemmin, kirjoittaa seuraavat koodit siinä-
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • Sen jälkeen minimoi VBA-ikkuna .

Koodin erittely

  • Tässä, loin Sub menettely, Filter_Different_Columns() .
  • Sitten käytin Osoitteessa lausekkeen käyttäminen Useita sarakkeita .
  • Sitten käytettiin Valikoima ominaisuus ilmoittaa meidän kunkin arkin nimi ja alue
  • Seuraavaksi käytin AutoFilter-menetelmä käyttää Kriteerit valitsemaani paikkaan, jossa Kenttä:=2 tarkoittaa sarake 2 ja Kenttä:=3 tarkoittaa sarake 3 .
  • Tässä valitut Criteria1:="Mies" osoitteessa Sukupuoli sarake ja Criteria1:="Valmistunut" osoitteessa Tila sarakkeeseen Suodatin tiedot eri sarakkeet .
  • Sitten noudata kolmatta vaihetta alkaen ensimmäinen esimerkki avataksesi Makrot-valintaikkuna .
  • Myöhemmin, valitse määritetty Makron nimi ja paina Run .

Tässä on useiden kriteerien tulos.

Lue lisää: Excel VBA suodattaa samassa sarakkeessa useita kriteerejä (6 esimerkkiä)

4. Käytä VBA-koodia Excelin 3 tärkeimmän kohteen suodattamiseen.

Tässä esimerkissä suodatamme kolme parasta opiskelijaa niiden mukaan ikä .

Vaiheet:

  • Seuraa kahta ensimmäistä vaihetta of the ensimmäinen esimerkki avataksesi VBA-ikkuna .
  • Sitten tyyppi seuraavat koodit siinä-
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • Tämän jälkeen minimoi VBA-ikkuna .

Koodin erittely

  • Tässä, loin Sub menettely, Filter_Top3_Items() .
  • Ja sitten käytti Operaattori:=xlTop10Items osoitteeseen Suodatin osoitteessa kolme parasta tiedot .
  • Nyt noudata kolmatta vaihetta alkaen ensimmäinen esimerkki avataksesi Makrot-valintaikkuna laatikko .
  • Sitten valitse makron nimi kuten säännöstössä mainitaan ja paina Run .

Sitten saat alla olevan kuvan kaltaisen tulosteen-

Lue lisää: Miten suodattaa solun arvon perusteella Excel VBA: n avulla (4 menetelmää)

Samanlaisia lukemia

  • Kopioiminen ja liittäminen, kun suodatinta käytetään Excelissä
  • Miten suodattaa ainutlaatuisia arvoja Excelissä (8 helppoa tapaa)
  • Suodata useita kriteerejä Excelissä VBA: n avulla (sekä AND- että OR-tyypit)
  • Kuinka käyttää tekstisuodatinta Excelissä (5 esimerkkiä)
  • Kuinka suodattaa päivämäärän mukaan Excelissä (4 nopeaa menetelmää)

5. Käytä VBA-koodia 50 parhaan prosenttiosuuden suodattamiseen Excelissä.

Käytetään VBA koodit suodattaa ylimmät viisikymmentä prosenttia opiskelijoista iän perusteella .

Vaiheet:

  • Ensimmäinen, Seuraa kahta ensimmäistä vaihetta of the ensimmäinen esimerkki avataksesi VBA-ikkuna .
  • Myöhemmin, tyyppi seuraavat koodit siinä-
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub 
  • Minimoi VBA-ikkuna .

Koodin erittely

  • Tässä, loin Sub menettely, Filter_Top50_Percent() .
  • Myöhemmin käytetty Operaattori:=xlTop10Percent osoitteeseen Suodata viidenkymmenen prosentin ylin sarake-4 .
  • Tällä hetkellä, noudata kolmatta vaihetta alkaen ensimmäinen esimerkki avataksesi Makrot -valintaikkuna.
  • Sitten valitse määritetty Makron nimi ja paina Run .

Yhteensä oli 7 opiskelijaa joten 50 prosenttia , se näyttää noin kolme opiskelijaa .

Lue lisää: Kuinka käyttää voittoprosenttikaavaa Excelissä (3 esimerkkiä)

6. Soveltaa VBA-koodia tietojen suodattamiseen jokerimerkillä

Voimme käyttää Jokerimerkit-* (tähti) osoitteessa VBA-koodit suodattaa tietoja Excelissä. Tila-sarake , suodatamme vain arvot, jotka sisältävät 'Post' .

Vaiheet:

  • Seuraa kahta ensimmäistä vaihetta of the ensimmäinen esimerkki avataksesi VBA-ikkuna .
  • Sitten kirjoittaa seuraavat koodit siinä-
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Myöhemmin minimoi VBA-ikkuna .

Koodin erittely

  • Tässä, loin Sub menettely, Filter_with_Wildcard() .
  • Sitten käytettiin Valikoima ("B4") määrittääksesi vaihteluvälin.
  • Seuraava , käytetty AutoFilter osoitteeseen Suodatin osoitteessa Kenttä:=3 tarkoittaa sarake 3.
  • Criteria1:="*Post*" osoitteeseen Suodatin arvot, jotka sisältävät 'Post'.
  • Nyt noudata kolmatta vaihetta alkaen ensimmäinen esimerkki avataksesi Makrot -valintaikkuna.
  • Valitse määritetty Makron nimi ja paina Run .

Silloin saat halutun tuloksen.

Lue lisää: Suodattimen lisääminen Excelissä (4 menetelmää)

7. Sulauta Excel VBA suodatettujen tietojen kopioimiseksi uuteen Excel-arkkiin.

Näet, että datasetissäni on joitakin suodatettuja tietoja. Nyt kopioin ne uuteen arkistoon käyttämällä komentoa VBA . Nämä koodit eivät toimi oikein arkissa, vaan ne on sovellettava moduulissa.

Vaiheet:

  • Paina Alt+F11 avataksesi VBA

  • Napsauta sitten Lisää> Moduuli osoitteeseen avaa moduuli .

  • Nyt kirjoittaa seuraavat koodit -
 Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Kopioi suodatetut tiedot").AutoFilterMode = False Then MsgBox "Ei suodatettuja tietoja" Exit Sub End If Set xRng = Worksheets("Kopioi suodatetut tiedot").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub 
  • Minimoi sitten VBA

Koodin erittely

  • Tässä, loin Sub menettely, Copy_Filtered_Data_NewSheet() .
  • Tämän jälkeen ilmoitetaan kahden muuttujan - x Rng As Range ja xWS Työarkkina.
  • Sitten käytettiin osoitteessa IF-lause tarkistaa Suodatettu
  • Myöhemmin käytetty MsgBox näyttääksesi tulosteen.
  • Sitten käytettiin Työarkit("Kopioi suodatetut tiedot").AutoFilter.Range valitsemaan Suodatettu alue ja käytetty Lisää lisätäksesi uuden arkin.
  • Vihdoinkin, Kopioi Range("G4") kopioi Suodatettu tiedot uusi arkki .
  • Myöhemmin, noudata kolmatta vaihetta alkaen ensimmäinen esimerkki avataksesi Makrot-valintaikkuna .
  • Sitten valitse määritetty Makron nimi ja paina Run .

Katso nyt, että Excel on avannut uuden arkin ja kopioinut suodatetut rivit.

Lue lisää: Excel-suodattimen pikakuvake (3 nopeaa käyttöä esimerkkien kanssa)

8. Soveltaa VBA-koodia tietojen suodattamiseen pudotusluettelon avulla

Viimeisessä esimerkissämme teemme ensin alasvetoluettelon sukupuolille ja sitten käytämme sitä tietojen suodattamiseen. Sitä varten olen sijoittanut sukupuolen kriteerit toiseen paikkaan ja teemme alasvetoluettelon osoitteessa Solu D14 .

Vaiheet:

  • Valitse Solu D14 .
  • Sitten klikkaa seuraavasti: Data> Data Tools> Data Validation> Data Validation.

Pian sen jälkeen valintaikkuna avautuu.

Valitse luettelo alkaen Salli pudotusvalikko .

Sitten klikkaa Avaa-kuvaketta alkaen Lähde laatikko .

Nyt valitse kriteerialue ja paina Enter-painiketta .

  • Tällä hetkellä vain paina OK .

Nyt meidän pudotusvalikko lista on valmis.

  • Nyt Seuraa kahta ensimmäistä vaihetta of the ensimmäinen esimerkki avataksesi VBA-ikkuna .
  • Sitten kirjoittaa seuraavat koodit siinä-
 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 
  • Sitten minimoi VBA-ikkuna .

Koodin erittely

  • Tässä, loin Yksityinen Sub menettely, Worksheet_Change(ByVal Target As Range).
  • Sitten valitsin Työarkki osoitteesta Yleistä ja Muuta osoitteesta Ilmoitukset .
  • Aseta sitten Osoite tietää sijainnin.
  • Lopuksi sisällä IF lauseke käytti AutoFilter menetelmä Kenttä ja Kriteerit
  • Nyt vain valitse kriteerit avattavasta luettelosta ja Suodatin aktivoituu .

Tässä on Suodatettu lähtö valinnan jälkeen Mies alkaen pudotusvalikko .

Lue lisää: Miten suodattaa luettelon luettelon toisessa Excel-arkissa (2 menetelmää)

Harjoitusosio

Yllä olevassa Excel-tiedostossa on harjoituslomake, jonka avulla voit harjoitella selitettyjä tapoja.

Päätelmä

Toivon, että edellä kuvatut menettelyt ovat riittävän hyviä käytettäväksi... VBA koodi Suodatin tiedot excelissä. Kysy rohkeasti mitä tahansa kysymystä kommenttiosassa ja anna minulle palautetta.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.