Automatický filtr VBA

Ve VBA můžete vytvářet AutoFilter za účelem filtrování rozsahu buněk nebo tabulky aplikace Excel. V tomto tutoriálu se naučíte, jak vytvářet AutoFilter pro jeden nebo více sloupců a pro více podmínek.

Pokud se chcete naučit používat pokročilý filtr ve VBA, klikněte sem: Rozšířený filtr VBA

Vytváření automatického filtru ve VBA

Nejprve uvidíte, jak jednoduše vytvářet AutoFilter v rozsahu, takže uživatel může data filtrovat. Data, která použijeme v příkladech, jsou na obrázku 1:

Obrázek 1. Data pro příklady automatického filtru

Zde je kód pro vytváření AutoFilter:

1 List1.Range ("A1: E1"). AutoFilter

Aby bylo možné povolit AutoFilter, musíme zadat záhlaví rozsahu, v našem případě A1: E1, a použít AutoFilter metoda objektu Rozsah. V důsledku toho má náš rozsah dat aktivované filtry:

Obrázek 2. Pro data je povolen automatický filtr

Automatický filtr s parametry pole a kritérií

VBA také umožňuje automaticky filtrovat určité pole s určitými hodnotami.

Chcete -li to provést, musíte použít parametry Pole a Kritéria 1 metody AutoFilter. V tomto příkladu chceme filtrovat třetí sloupec (Produkt) pro Produkt A. pouze. Zde je kód:

12 List1.Range ("A1: E1"). Pole automatického filtru: = 3, _Kritéria1: = "Produkt A"

V Pole parametr, můžete nastavit číslo sloupce v rozsahu (ne v Excelu), zatímco v Kritéria 1 můžete zadat hodnotu, kterou chcete filtrovat. Po spuštění kódu vypadá naše tabulka takto:

Obrázek 3. Automatický filtr s polem a kritérii

Jak vidíte, pouze řádky s Produkt A. ve třetím sloupci jsou zobrazeny v rozsahu dat.

Automatický filtr s hodnotami pole a více kritérií

Pokud chcete filtrovat jedno pole s několika hodnotami, musíte použít parametr Operátor z AutoFilter metoda. Chcete -li filtrovat více hodnot, musíte nastavit Operátor na xlFilterValues a také dát všechny hodnoty Kritéria v poli. V tomto případě filtrujeme Produkt sloupec pro Produkt A. a Produkt B. Zde je příklad kódu:

123 List1.Range ("A1: E1"). Pole automatického filtru: = 3, _Kritéria 1: = Pole („Produkt A“, „Produkt B“), _Operátor: = xlFilterValues

Když spustíme kód, získáme pouze řádky s produktem A a produktem B, jak vidíte na obrázku 4:

Obrázek 4. Automatický filtr s více hodnotami kritérií

Rozsah dat automatického filtru s více kritérii

Pokud chcete filtrovat pole s více kritérii, musíte použít Kritéria 1 a Kritéria 2 parametry, ale také Operátor xlAnd.

V dalším příkladu budeme filtrovat první sloupec (datum) pro data v prosinci 2022. Máme tedy dvě kritéria: datum větší než 1. 1. 18 a menší než 31. 12. 18. Toto je kód:

1234 List1.Range ("A1: E1"). Pole automatického filtru: = 1, _Kritéria1: = "> = 12/01/2018", _Operátor: = xlAnd, _Kritéria2: = "<= 31/12/2018"

Když spustíme kód, můžete vidět, že v datovém rozsahu jsou zobrazena pouze data v prosinci:

Obrázek 5. Automatický filtr s více kritérii pro pole

Hodnoty parametru operátora metody AutoFilter

V další tabulce. můžete vidět všechny možné hodnoty Operátor parametr metody AutoFilter a jejich popis:

Operátor Popis
xlAnd Obsahuje více kritérií - Kritéria 1 a Kritéria 2
xlOr Zahrnuje jedno z více kritérií - Kritéria 1 nebo Kritéria 2
xlTop10Položky Filtruje určitý počet nejvyšších hodnot (číslo uvedené v kritériu 1)
xlBottom10Položky Filtruje určitý počet hodnot s nejnižším hodnocením (počet uvedený v kritériu 1)
xlTop10Procent Filtruje určité procento hodnot s nejvyšším hodnocením (% specifikované v kritériu 1)
xlBottom10Procent Filtruje určité procento hodnot s nejnižším hodnocením (% specifikované v kritériu 1)
xlFilterValues Zahrnuje více hodnot kritérií s Array
xlFilterCellColor Filtruje buňky pro barvy
xlFilterFontColor Filtruje buňky pro barvy písma
xlFIlterIcon Ikony filtrů
xlFilterDynamic Filtrujte dynamické hodnoty

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave