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 |