U VBA možete stvarati Autofilter kako biste filtrirali raspon ćelija ili Excel tablicu. U ovom ćete vodiču naučiti stvarati Autofilter za jedan ili više stupaca i za više uvjeta.
Ako želite naučiti kako koristiti napredni filtar u VBA, kliknite ovdje: VBA napredni filtar
Izrada autofiltera u VBA -i
Prvo ćete vidjeti kako samo stvarati Autofilter u rasponu, tako da korisnik može filtrirati podatke. Podaci koje ćemo koristiti u primjerima nalaze se na slici 1:
Slika 1. Podaci za primjere automatskog filtriranja
Evo koda za stvaranje Autofilter:
1 | List1.Range ("A1: E1"). Autofilter |
Kako bi omogućili Autofilter, moramo navesti zaglavlje raspona, u našem slučaju A1: E1, i koristiti Autofilter metoda objekta Domet. Zbog toga su u našem rasponu podataka aktivirani filtri:
Slika 2. Automatski filtar omogućen za podatke
Autofilter s parametrima polja i kriterija
VBA vam također omogućuje automatsko filtriranje određenog polja s određenim vrijednostima.
Da biste to učinili, morate koristiti parametre Polje i Kriteriji 1 metode Autofilter. U ovom primjeru želimo filtrirati treći stupac (Proizvod) za Proizvod A samo. Evo koda:
12 | List1.Range ("A1: E1"). Polje automatskog filtriranja: = 3, _Kriteriji1: = "Proizvod A" |
U Polje parametar, možete postaviti broj stupca u rasponu (ne u Excelu), dok je u Kriteriji 1 možete unijeti vrijednost koju želite filtrirati. Nakon izvršavanja koda, naša tablica izgleda ovako:
Slika 3. Autofilter s poljem i kriterijima
Kao što vidite, samo redovi sa Proizvod A u trećem stupcu prikazani su u rasponu podataka.
Autofilter s vrijednostima polja i više kriterija
Ako želite filtrirati jedno polje s nekoliko vrijednosti, morate koristiti parametar Operater od Autofilter metoda. Da biste filtrirali više vrijednosti, morate postaviti Operater do xlFilterValues a također i staviti sve vrijednosti Kriteriji u nizu. U ovom primjeru filtriramo Proizvod stupac za Proizvod A i Proizvod B. Evo primjera koda:
123 | List1.Range ("A1: E1"). Polje automatskog filtriranja: = 3, _Kriteriji1: = niz ("Proizvod A", "Proizvod B"), _Operator: = xlFilterValues |
Kada izvršimo kôd, dobivamo samo retke s proizvodom A i proizvodom B, kao što možete vidjeti na slici 4:
Slika 4. Autofilter s više vrijednosti kriterija
Raspon podataka automatskog filtriranja s više kriterija
Ako želite filtrirati polje s više kriterija, morate ga koristiti Kriteriji 1 i Kriteriji 2 parametre, ali i Operater xlAnd.
U sljedećem primjeru filtrirat ćemo prvi stupac (Datum) za datume u prosincu 2022. Stoga imamo dva kriterija: datum veći od 01.01.18. i manji od 31.12.18. Ovo je kod:
1234 | List1.Range ("A1: E1"). Polje automatskog filtriranja: = 1, _Kriteriji1: = "> = 12/01/2018", _Operater: = xlAnd, _Kriteriji 2: = "<= 31.12.2018." |
Kad izvršimo kôd, možete vidjeti da su u podatkovnom rasponu prikazani samo datumi u prosincu:
Slika 5. Autofilter s više kriterija za polje
Vrijednosti parametara operatora metode AutoFilter
U sljedećoj tablici. možete vidjeti sve moguće vrijednosti Operater parametar metode AutoFilter i njihovi opisi:
Operater | Opis |
xlAnd | Uključuje više kriterija - Kriterij 1 i Kriterij 2 |
xlOr | Uključuje jedan od više kriterija - kriterij1 ili kriterij 2 |
xlTop10Items | Filtrira određeni broj najviših vrijednosti (broj naveden u Kriterijima 1) |
xlBottom10Items | Filtrira određeni broj najnižih vrijednosti (broj naveden u Kriterijima 1) |
xlTop10Procent | Filtrira određeni postotak najviših vrijednosti (% navedenih u kriterijima1) |
xlBottom10Procent | Filtrira određeni postotak najnižih vrijednosti (% navedenih u kriterijima1) |
xlFilterValues | Uključuje više vrijednosti kriterija s nizom |
xlFilterCellColor | Filtrira ćelije za boje |
xlFilterFontColor | Filtrira ćelije za boje fonta |
xlFIlterIcon | Ikone filtera |
xlFilterDynamic | Filtrirajte dinamičke vrijednosti |