Kód VBA pro filtrování dat v aplikaci Excel (8 příkladů)

  • Sdílet Toto
Hugh West

Excel Příkaz Třídit & Filtrovat má omezený dosah na Filtrování dat . Ale pomocí VBA můžete Filtrování dat v širokém rozsahu, jak si přejete. Tento článek vám poskytne 8 užitečných příkladů, které můžete použít. VBA kód na Filtrování dat v programu Excel pomocí VBA kódy s živými ilustracemi.

Stáhnout cvičebnici

Bezplatnou šablonu Excelu si můžete stáhnout zde a procvičit si ji sami.

Kód VBA pro filtrování dat.xlsm

8 příkladů použití kódu VBA k filtrování dat v aplikaci Excel

Nejprve se seznámíme s naším souborem dat, který představuje některé pohlaví, postavení a věk studentů .

1. Použití kódu VBA k filtrování dat na základě textového kritéria v aplikaci Excel

V našem prvním příkladu použijeme VBA na Filtr pouze Muži studentů z Pohlaví sloupce datového souboru.

Kroky:

  • Klikněte pravým tlačítkem myši na na název listu .
  • Pak vybrat Zobrazit kód z Kontextová nabídka .

Brzy poté se objevil VBA otevře se okno.

  • Typ následující kódy v něm...
 Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub 
  • Později minimalizujte VBA

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Filter_Data_Text() .
  • Pak použil Rozsah deklarovat naše příslušné název listu a rozsah
  • Dále jsem použil metoda AutoFilter používat Kritéria podle mého výběru, kde Pole:=2 znamená sloupec 2 . A Kritérium1:="Muž" na Filtr údaje pro Muži.
  • Poté, aby otevřít na Dialogové okno Makra , klikněte na takto: Vývojář> Makra.

  • Vyberte . Název makra jak je uvedeno v kódy .
  • Nakonec jen stiskněte tlačítko Spustit .

Nyní se podívejte, že máme pouze Údaje studentů mužského pohlaví po Filtrování .

Přečtěte si více: Filtrování dat v aplikaci Excel na základě hodnoty buňky (6 efektivních způsobů)

2. Použití kódu VBA pro filtrování dat pomocí více kritérií v jednom sloupci

Zde budeme Filtr pro více kritérií v jednom sloupci. Ze sloupce číslo tři datového souboru budeme Filtr pro Absolvent a Postgraduální studium studentů.

Kroky:

  • Postupujte podle prvních dvou kroků o první příklad otevřít Okno VBA .
  • Později, typ následující kódy v něm...
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Pak minimalizujte VBA

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Filter_One_Column() .
  • Pak použil Rozsah deklarovat naše příslušné název listu a rozsah
  • Dále jsem použil metoda AutoFilter používat Kritéria podle mého výběru, kde Pole:=3 znamená sloupec 3 . zde, Kritérium1:="Absolvent" a Kritérium2:="Postgraduální" na Filtr žáka Stav .
  • Nakonec jsem použil Operátor:=xlOr použít NEBO stav Filtr pro více kritérií.
  • V tuto chvíli, sledovat na třetí krok z první příklad otevřít Dialogové okno Makra box .
  • Později, vybrat zadané Název makra a stiskněte tlačítko Spustit .

Brzy poté se zobrazí filtrované řádky na základě více kritérií, jako na obrázku níže.

Přečtěte si více: Filtrování více kritérií v aplikaci Excel (4 vhodné způsoby)

3. Použití kódu VBA pro filtrování dat pomocí více kritérií v různých sloupcích aplikace Excel

Nyní budeme Filtr pro více kritérií. Muži a Absolvent studentů.

Kroky:

  • Postupujte podle prvních dvou kroků o první příklad otevřít VBA
  • Později, napsat následující kódy v něm...
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • Poté minimalizovat okno VBA .

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Filter_Different_Columns() .
  • Pak jsem použil S příkaz k použití Více sloupců .
  • Pak použil Rozsah deklarovat naše příslušné název listu a rozsah
  • Dále jsem použil metoda AutoFilter používat Kritéria podle mého výběru, kde Pole:=2 znamená sloupec 2 a Pole:=3 znamená sloupec 3 .
  • Zde vybrané Kritérium1:="Muž" pro Pohlaví sloupec a Kritérium1:="Absolvent" pro Stav sloupec na Filtr údaje z různé sloupce .
  • Pak následujte třetí krok z první příklad otevřít Dialogové okno Makra .
  • Později, vybrat zadané Název makra a stiskněte tlačítko Spustit .

Zde je výsledek vícenásobných kritérií.

Přečtěte si více: Filtrování ve stejném sloupci pomocí více kritérií v aplikaci Excel VBA (6 příkladů)

4. Použití kódu VBA k filtrování 3 nejlepších položek v aplikaci Excel

V tomto příkladu budeme filtrovat tři nejlepší studenti podle jejich věk .

Kroky:

  • Postupujte podle prvních dvou kroků o první příklad otevřít Okno VBA .
  • Pak typ následující kódy v něm...
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • Poté minimalizujte Okno VBA .

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Filter_Top3_Items() .
  • A pak použil Operátor:=xlTop10Items na Filtr pro tři nejlepší data .
  • Nyní následujte třetí krok z první příklad otevřít Dialogové okno Makra box .
  • Pak vyberte název makra jak je uvedeno v kodexech a stiskněte tlačítko Spustit .

Pak se zobrazí výstup jako na obrázku níže.

Přečtěte si více: Jak filtrovat na základě hodnoty buňky pomocí aplikace Excel VBA (4 metody)

Podobná čtení

  • Jak kopírovat a vkládat při použití filtru v aplikaci Excel
  • Jak filtrovat jedinečné hodnoty v aplikaci Excel (8 snadných způsobů)
  • Filtrování více kritérií v aplikaci Excel pomocí VBA (typy AND i OR)
  • Jak používat textový filtr v aplikaci Excel (5 příkladů)
  • Jak filtrovat podle data v aplikaci Excel (4 rychlé metody)

5. Použití kódu VBA k filtrování 50 nejvyšších procent v aplikaci Excel

Použijme VBA kódy pro filtrování horních padesát procent studentů na základě jejich věku .

Kroky:

  • Za prvé, Postupujte podle prvních dvou kroků o první příklad otevřít Okno VBA .
  • Později, typ následující kódy v něm...
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Pole:=4, Kritérium1:="50", Operátor:=xlTop10Percent End Sub 
  • Minimalizujte Okno VBA .

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Filter_Top50_Percent() .
  • Později použil Operátor:=xlTop10Percent na Filtrovat horních padesát procent z sloupec-4 .
  • V tuto chvíli, následujte třetí krok z první příklad otevřít Dialogové okno Makra.
  • Pak vybrat zadané Název makra a stiskněte tlačítko Spustit .

Celkem bylo 7 studentů takže pro 50 procent , ukazuje přibližně tři studenti .

Přečtěte si více: Jak používat vzorec pro procento zisku v aplikaci Excel (3 příklady)

6. Použití kódu VBA pro filtrování dat pomocí zástupného znaku

Můžeme použít Zástupné znaky - * (hvězdička) na adrese Kódy VBA Filtrovat data v aplikaci Excel. Sloupec Stav , budeme filtrovat pouze hodnoty, které obsahují 'Post' .

Kroky:

  • Postupujte podle prvních dvou kroků o první příklad otevřít Okno VBA .
  • Pak napsat následující kódy v něm...
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Později minimalizujte Okno VBA .

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Filter_with_Wildcard() .
  • Pak použil Rozsah ("B4") pro nastavení rozsahu.
  • Další , použité Automatický filtr na Filtr na adrese Pole:=3 znamená sloupec 3.
  • Kritérium1:="*Post*" na Filtr hodnoty, které obsahují "Post".
  • Nyní následujte třetí krok z první příklad otevřít Dialogové okno Makra.
  • Vyberte zadané Název makra a stiskněte tlačítko Spustit .

Pak získáte požadovaný výstup.

Přečtěte si více: Jak přidat filtr v aplikaci Excel (4 metody)

7. Vložení aplikace Excel VBA pro kopírování filtrovaných dat do nového listu v aplikaci Excel

Vidíte, že v mém datovém souboru jsou některá filtrovaná data. Nyní je zkopíruji do nového listu s použitím VBA . Tyto kódy nebudou správně fungovat v listu, musíte je použít v modulu.

Kroky:

  • Stiskněte klávesy Alt+F11 otevřít VBA

  • Pak klikněte na Vložit> Modul na otevřít modul .

  • Nyní napsat následující kódy -
 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 
  • Pak minimalizujte VBA

Rozdělení kódu

  • Zde jsem vytvořil Sub postup, Copy_Filtered_Data_NewSheet() .
  • Poté je deklarováno, že dvě proměnné - x Rng Jako rozsah a xWS Jako pracovní list.
  • Pak použil . Příkaz IF zkontrolovat Filtrované
  • Později použil MsgBox zobrazit výstup.
  • Pak použil Pracovní listy("Kopírovat filtrovaná data").AutoFilter.Range vybrat Filtrované rozsah a použité Přidat přidat nový list.
  • Nakonec, Kopírovat rozsah("G4") zkopíruje Filtrované údaje do nový list .
  • Později, následujte třetí krok z první příklad otevřít Dialogové okno Makra .
  • Pak vybrat zadané Název makra a stiskněte tlačítko Spustit .

Nyní vidíte, že Excel otevřel nový list a zkopíroval filtrované řádky.

Přečtěte si více: Zkratka pro filtr Excelu (3 rychlá použití s příklady)

8. Použití kódu VBA pro filtrování dat pomocí rozevíracího seznamu

V našem posledním příkladu nejprve vytvoříme rozevírací seznam pro pohlaví a poté jej použijeme k filtrování dat. Za tímto účelem jsem umístil kritéria pro pohlaví na jiné místo a vytvoříme rozevírací seznam v položce Buňka D14 .

Kroky:

  • Vyberte Buňka D14 .
  • Pak klikněte na takto: Data> Datové nástroje> Validace dat> Validace dat.

Brzy poté se objevil dialogové okno se otevře.

Vybrat seznam z Povolit rozevírací seznam .

Pak klikněte na ikonu Otevřít z Zdrojový box .

Nyní vyberte rozsah kritérií a stiskněte tlačítko Enter .

  • V tuto chvíli jen stiskněte tlačítko OK .

Nyní naše rozevírací seznam seznam je připraven.

  • Nyní Postupujte podle prvních dvou kroků o první příklad otevřít Okno VBA .
  • Pak napsat následující kódy v něm...
 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 
  • Pak minimalizovat okno VBA .

Rozdělení kódu

  • Zde jsem vytvořil Soukromý subdodavatel postup, Worksheet_Change(ByVal Target As Range).
  • Pak jsem vybral Pracovní list z Obecné a Změna z Prohlášení .
  • Pak nastavte Adresa zjistit polohu.
  • Nakonec v rámci IF příkaz použil Automatický filtr metodou s Pole a Kritéria
  • Nyní stačí vyberte kritéria z rozevíracího seznamu a Filtr se aktivuje .

Zde je Filtrované výstup po výběru Muži z rozevírací seznam .

Přečtěte si více: Jak filtrovat podle seznamu v jiném listu aplikace Excel (2 metody)

Praktická část

Ve výše uvedeném souboru Excel získáte cvičný list, na kterém si vysvětlené způsoby procvičíte.

Závěr

Doufám, že výše popsané postupy budou dostatečně dobré pro použití. VBA kód na Filtr Neváhejte se zeptat na cokoli v sekci komentářů a dejte mi prosím zpětnou vazbu.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.