VBA-kód az adatok szűréséhez Excelben (8 példa)

  • Ossza Meg Ezt
Hugh West

Excel Sort & Filter parancs korlátozott hatótávolsággal rendelkezik Szűrési adatok De a VBA akkor Szűrési adatok széles skálán, ahogyan csak akarod. Ez a cikk 8 hasznos példát ad neked, hogy használd a VBA kód a Szűrési adatok excelben a VBA kódok szemléletes illusztrációkkal.

Gyakorlati munkafüzet letöltése

Az ingyenes Excel-sablont letöltheti innen, és saját maga is gyakorolhatja.

VBA kód az adatok szűréséhez.xlsm

8 példa a VBA-kód használatára az Excel adatainak szűrésére

Először is ismerkedjünk meg az adathalmazunkkal, amely néhány a diákok neme, státusza és életkora .

1. VBA-kód használata az adatok szöveges kritériumok alapján történő szűréséhez az Excelben

A legelső példánkban az alábbiakat fogjuk használni VBA a címre. Szűrő csak Férfi diákok a Gender oszlopában.

Lépések:

  • Kattintson a jobb gombbal a címre. a lap címe .
  • Akkor válassza a Kód megtekintése opciót a Kontextus menü .

Nem sokkal később egy VBA ablak fog megnyílni.

  • Típus a következőket kódok benne...
 Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub 
  • Később minimalizálja a VBA

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Filter_Data_Text() .
  • Ezután használta a Tartomány tulajdonságot, hogy deklaráljuk a megfelelő lap neve és tartomány
  • Ezután használtam az AutoFilter módszer használatra Kritériumok a választásom, ahol Mező:=2 azt jelenti: 2. oszlop . és Criteria1:="Férfi" a címre. Szűrő a következő adatok Férfi.
  • Ezután, hogy nyitott a Makrók párbeszédpanel , kattints a címre. a következőképpen: Fejlesztő> Makrók.

  • Válassza ki a címet. a Makró neve ahogyan azt a kódok .
  • Végül, csak nyomja meg a Futtatás gombot .

Most nézd meg, hogy mi van csak Férfi hallgatók adatai a után Szűrés .

Bővebben: Excel szűrő adatok cellák értéke alapján (6 hatékony módja)

2. VBA kód alkalmazása adatok szűrésére több kritériummal egy oszlopban

Itt, mi lesz Szűrő több kritériumra egy oszlopban. Az adatkészlet harmadik oszlopából, a Szűrő a oldalon. Diplomás és Posztgraduális képzés diákok.

Lépések:

  • Kövesse az első két lépést a első példa a VBA ablak .
  • Később, típus a következőket kódok benne...
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Ezután minimalizálja a VBA

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Filter_One_Column() .
  • Ezután használta a Tartomány tulajdonságot, hogy deklaráljuk a megfelelő lap neve és tartomány
  • Ezután használtam az AutoFilter módszer a Kritériumok a választásom, ahol Mező:=3 azt jelenti: 3. oszlop ...itt, Criteria1:="Diplomás" és Criteria2:="Posztgraduális" a címre. Szűrő a tanuló Állapot .
  • Végül, használtam Operator:=xlOr alkalmazni VAGY feltétel Szűrő több kritériumra vonatkozóan.
  • Ebben a pillanatban, kövesse a harmadik lépés a első példa a Makrók párbeszédpanel doboz .
  • Később, válassza ki a címet. a megadott Makró neve és nyomja meg a Futtatás gombot .

Nem sokkal később megkapja a több kritérium alapján szűrt sorokat, mint az alábbi képen.

Bővebben: Több kritérium szűrése az Excelben (4 megfelelő mód)

3. VBA-kód alkalmazása az adatok több kritériummal történő szűréséhez különböző oszlopokban az Excelben

Most pedig Szűrő több kritérium esetén... Férfi és Diplomás diákok.

Lépések:

  • Kövesse az első két lépést a első példa a VBA
  • Később, írja a következőket kódok benne...
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • Ezután minimalizálja a VBA ablakot .

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Filter_Different_Columns() .
  • Aztán, használtam a A címen statement to use Több oszlop .
  • Ezután használta a Tartomány tulajdonságot, hogy deklaráljuk a megfelelő lap neve és tartomány
  • Ezután használtam az AutoFilter módszer használatra Kritériumok a választásom, ahol Mező:=2 azt jelenti: 2. oszlop és Mező:=3 azt jelenti: 3. oszlop .
  • Itt kiválasztott Criteria1:="Férfi" a oldalon. Gender oszlop és Criteria1:="Diplomás" a oldalon. Állapot oszlop a Szűrő adatok a különböző oszlopok .
  • Akkor kövesse a harmadik lépést a első példa a Makrók párbeszédpanel .
  • Később, válassza ki a címet. a megadott Makró neve és nyomja meg a Futtatás gombot .

Itt van a több kritérium kimenete.

Bővebben: Excel VBA ugyanazon oszlop szűréséhez több kritérium alapján (6 példa)

4. VBA-kód használata a Top 3 elem szűréséhez az Excelben

Ebben a példában a Filter the három legjobb diák aszerint, hogy kor .

Lépések:

  • Kövesse az első két lépést a első példa a VBA ablak .
  • Akkor típus a következőket kódok benne...
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • Ezután minimalizálja a VBA ablak .

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Filter_Top3_Items() .
  • És aztán használt Operator:=xlTop10Items a címre. Szűrő a oldalon. az első három helyezett adatok .
  • Most kövesse a harmadik lépést a első példa a Makrók párbeszédpanel doboz .
  • Akkor válassza ki a makró nevét a kódexekben említettek szerint és nyomja meg a Futtatás gombot .

Ezután az alábbi képhez hasonló kimenetet kapunk.

Bővebben: Hogyan kell szűrni a cella értéke alapján az Excel VBA használatával (4 módszer)

Hasonló olvasmányok

  • Hogyan lehet másolni és beilleszteni, amikor a szűrő az Excelben van alkalmazva
  • Egyedi értékek szűrése az Excelben (8 egyszerű módja)
  • Több kritérium szűrése Excelben a VBA-val (AND és OR típusok)
  • Szövegszűrő használata az Excelben (5 példa)
  • Hogyan szűrhet dátum szerint az Excelben (4 gyors módszer)

5. A VBA-kód használata a Top 50 százalék szűréséhez az Excelben

Használjuk a VBA kódok a Filter the felső ötven százalék diákok száma életkoruk alapján .

Lépések:

  • Először is, Kövesse az első két lépést a első példa a VBA ablak .
  • Később, típus a következőket kódok benne...
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub 
  • Minimalizálja a VBA ablak .

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Filter_Top50_Percent() .
  • Később használt Operator:=xlTop10Percent a címre. Szűrje a a felső ötven százalék a oszlop-4 .
  • Ebben a pillanatban, kövesse a harmadik lépést a első példa a Makrók párbeszédpanel.
  • Akkor válassza ki a címet. a megadott Makró neve és nyomja meg a Futtatás gombot .

Összesen 7 diák így a 50 százalék , ez azt mutatja, hogy körülbelül három diák .

Bővebben: Hogyan használjuk a nyereségszázalék képletet az Excelben (3 példa)

6. VBA-kód alkalmazása az adatok szűrésére a Wildcard használatával

Használhatjuk Joker karakterek-* (csillag) a oldalon. VBA kódok az adatok szűréséhez Excelben. A Állapot oszlop , csak a a 'Post' szót tartalmazó értékek .

Lépések:

  • Kövesse az első két lépést a első példa a VBA ablak .
  • Akkor írja a következőket kódok benne...
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Később minimalizálja a VBA ablak .

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Filter_with_Wildcard() .
  • Ezután használt Tartomány ("B4") a tartomány beállításához.
  • Következő , használt AutoFilter a címre. Szűrő a oldalon. Mező:=3 azt jelenti: 3. oszlop.
  • Criteria1:="*Post*" a címre. Szűrő a "Post" szót tartalmazó értékek.
  • Most kövesse a harmadik lépést a első példa a Makrók párbeszédpanel.
  • Válassza ki a címet. a megadott Makró neve és nyomja meg a Futtatás gombot .

Ezután megkapja a kívánt kimenetet.

Bővebben: Szűrő hozzáadása az Excelben (4 módszer)

7. Beágyazott Excel VBA a szűrt adatok Excel új lapra történő másolásához

Látom, hogy van néhány Szűrt adat az adatkészletemben. Most átmásolom őket egy új lapra a következővel VBA . Ezek a kódok nem fognak megfelelően működni a lapon, a modulban kell alkalmazni őket.

Lépések:

  • Nyomja meg az Alt+F11 billentyűkombinációt a VBA

  • Ezután kattintson a Beszúrás> modul a címre. modul megnyitása .

  • Most írja a következőket kódok -
 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 
  • Ezután minimalizálja a VBA

Kód lebontása

  • Itt létrehoztam egy Sub eljárás, Copy_Filtered_Data_NewSheet() .
  • Ezt követően a bejelentett kétváltozós - x Rng Mivel a Range és xWS Munkalapként.
  • Ezután használt egy IF utasítás ellenőrizni Szűrt
  • Később használt MsgBox a kimenet megjelenítéséhez.
  • Ezután használt Worksheets("Szűrt adatok másolása").AutoFilter.Range válassza ki a Szűrt tartomány és használt Add egy új lap hozzáadásához.
  • Végre, Másolás Range("G4") másolja a Szűrt adatok a új lap .
  • Később, kövesse a harmadik lépést a első példa a Makrók párbeszédpanel .
  • Akkor válassza ki a címet. a megadott Makró neve és nyomja meg a Futtatás gombot .

Most láthatjuk, hogy az Excel megnyitott egy új lapot, és átmásolta a Szűrt sorokat.

Bővebben: Excel szűrő parancsikonja (3 gyors felhasználás példákkal)

8. VBA-kód alkalmazása az adatok szűrésére a legördülő lista használatával

Az utolsó példánkban először egy legördülő listát készítünk a nemek számára, majd ezt használjuk az adatok szűrésére. Ehhez a nemi kritériumokat egy másik helyre helyeztem, és egy legördülő listát készítünk a D14-es cella .

Lépések:

  • Válassza ki a címet. D14-es cella .
  • Akkor kattints a címre. a következőképpen: Adatok> Adateszközök> Adatérvényesítés> Adatérvényesítés.

Nem sokkal később egy párbeszédpanel megnyílik.

Válassza ki a listát a Drop-down engedélyezése .

Akkor kattintson a Megnyitás ikonra a Forrás doboz .

Most válassza ki a kritériumtartományt és nyomja meg az Enter gombot .

  • Ebben a pillanatban, csak nyomja meg az OK gombot .

Most a mi drop-down lista készen áll.

  • Most Kövesse az első két lépést a első példa a VBA ablak .
  • Akkor írja a következőket kódok benne...
 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 
  • Akkor minimalizálja a VBA ablakot .

Kód lebontása

  • Itt létrehoztam egy Private Sub eljárás, Worksheet_Change(ByVal Target As Range).
  • Aztán kiválasztottam Munkalap a címről Általános és Változás a címről Nyilatkozatok .
  • Ezután állítsa be a Cím: a helyszín ismerete.
  • Végül a IF utasítás a AutoFilter módszerrel Terep és Kritériumok
  • Most csak Válassza ki a feltételeket a legördülő listából és a A szűrő aktiválódik .

Itt van a Szűrt kimenet kiválasztása után Férfi a drop-down .

Bővebben: Hogyan szűrhetünk egy másik Excel lapon lévő lista alapján (2 módszer)

Gyakorlati szekció

A fent megadott Excel-fájlban kap egy gyakorló lapot a magyarázott módszerek gyakorlásához.

Következtetés

Remélem, hogy a fent leírt eljárások elég jók lesznek ahhoz, hogy használhassuk VBA kód a Szűrő adatok az excelben. Nyugodtan tegyen fel bármilyen kérdést a megjegyzés rovatban, és kérem, adjon visszajelzést.

Hugh West nagy tapasztalattal rendelkező Excel-oktató és elemző, több mint 10 éves tapasztalattal az iparágban. Számvitel és pénzügy szakos alapdiplomát, valamint üzleti adminisztrációból mesterképzést szerzett. Hugh szenvedélye a tanítás, és egyedülálló tanítási megközelítést dolgozott ki, amely könnyen követhető és érthető. Az Excelben szerzett szakértői tudása világszerte több ezer diáknak és szakembernek segített abban, hogy készségeiket és karrierjüket kiválóan teljesítsék. Hugh blogján keresztül megosztja tudását a világgal, ingyenes Excel-oktatóanyagokat és online képzéseket kínálva, hogy segítse az egyéneket és a vállalkozásokat teljes potenciáljuk kibontakoztatásában.