Vo VBA môžete vytvárať AutoFilter na filtrovanie rozsahu buniek alebo tabuľky programu Excel. V tomto návode sa naučíte, ako vytvárať AutoFilter pre jeden alebo viac stĺpcov a pre viac podmienok.
Ak sa chcete dozvedieť, ako používať pokročilý filter vo VBA, kliknite sem: Rozšírený filter VBA
Vytvorenie automatického filtra vo VBA
Najprv uvidíte, ako jednoducho vytvárať AutoFilter v rozsahu, takže používateľ môže údaje filtrovať. Údaje, ktoré použijeme v príkladoch, sú na obrázku 1:
Obrázok 1. Údaje pre príklady automatického filtra
Tu je kód na vytvorenie AutoFilter:
1 | List 1. Rozsah („A1: E1“). Automatický filter |
Aby bolo možné povoliť AutoFilter, musíme zadať hlavičku rozsahu, v našom prípade A1: E1, a použiť AutoFilter metóda objektu Rozsah. V dôsledku toho má náš rozsah údajov aktivované filtre:
Obrázok 2. Pre údaje je povolený automatický filter
Automatický filter s parametrami poľa a kritérií
VBA vám tiež umožňuje automaticky filtrovať určité pole s určitými hodnotami.
Aby ste to urobili, musíte použiť parametre Lúka a Kritériá 1 metódy AutoFilter. V tomto prípade chceme filtrovať tretí stĺpec (Výrobok) pre Výrobok A. iba. Tu je kód:
12 | List1.Range ("A1: E1"). Pole automatického filtra: = 3, _Kritériá1: = "Produkt A" |
V Lúka parameter, môžete nastaviť číslo stĺpca v rozsahu (nie v Exceli), zatiaľ čo v Kritériá 1 môžete vložiť hodnotu, ktorú chcete filtrovať. Po spustení kódu vyzerá naša tabuľka takto:
Obrázok 3. Automatický filter s poľom a kritériami
Ako vidíte, iba riadky s Výrobok A. v treťom stĺpci sú zobrazené v rozsahu údajov.
Automatický filter s hodnotami poľa a viacerých kritérií
Ak chcete filtrovať jedno pole s niekoľkými hodnotami, musíte použiť parameter Operátor z AutoFilter metóda. Ak chcete filtrovať viacero hodnôt, musíte nastaviť Operátor do xlFilterValues a tiež dať všetky hodnoty Kritériá v poli. V tomto prípade filtrujeme súbor Výrobok stĺpec pre Výrobok A. a Produkt B. Tu je príklad kódu:
123 | List1.Range ("A1: E1"). Pole automatického filtra: = 3, _Kritériá1: = Pole („Produkt A“, „Produkt B“), _Operátor: = xlFilterValues |
Keď spustíme kód, získame iba riadky s Produktom A a Produktom B, ako vidíte na obrázku 4:
Obrázok 4. Automatický filter s viacerými hodnotami kritérií
Rozsah údajov automatického filtra s viacerými kritériami
Ak chcete filtrovať pole s viacerými kritériami, musíte použiť Kritériá 1 a Kritériá 2 parametre, ale aj Operátor xlAnd.
V nasledujúcom príklade budeme filtrovať prvý stĺpec (Dátum) pre dátumy v decembri 2022. Preto máme dve kritériá: dátum väčší ako 01/18/18 a menší ako 31/12/18. Toto je kód:
1234 | List1.Range ("A1: E1"). Pole automatického filtra: = 1, _Kritériá1: = "> = 12/01/2018", _Operátor: = xlAnd, _Kritériá2: = "<= 31.12.2018" |
Keď spustíme kód, môžete vidieť, že v rozsahu údajov sa zobrazujú iba dátumy v decembri:
Obrázok 5. Automatický filter s viacerými kritériami pre pole
Hodnoty parametra operátora metódy AutoFilter
V ďalšej tabuľke. môžete vidieť všetky možné hodnoty súboru Operátor parameter metódy AutoFilter a ich popisy:
Operátor | Popis |
xlAnd | Obsahuje viacero kritérií - kritériá 1 a kritériá 2 |
xlOr | Obsahuje jedno z viacerých kritérií - Kritériá 1 alebo Kritériá 2 |
xlTop10Položky | Filtruje určitý počet najvyššie hodnotených hodnôt (počet uvedený v kritériách 1) |
xlBottom10Položky | Filtruje určitý počet hodnôt s najnižším hodnotením (počet uvedený v kritériách 1) |
xlTop10Percent | Filtruje určité percento hodnôt s najvyšším hodnotením (% uvedené v kritériách 1) |
xl Bottom10Percent | Filtruje určité percento hodnôt s najnižším hodnotením (% uvedené v kritériách 1) |
xlFilterValues | Obsahuje viacero hodnôt kritérií s poľom |
xlFilterCellColor | Filtruje bunky pre farby |
xlFilterFontColor | Filtruje bunky pre farby písma |
xlFIlterIcon | Ikony filtrov |
xlFilterDynamic | Filtrujte dynamické hodnoty |