V VBA lahko ustvarite Samodejni filter za filtriranje obsega celic ali Excelove tabele. V tej vadnici se boste naučili ustvarjati Samodejni filter za enega ali več stolpcev in za več pogojev.
Če želite izvedeti, kako uporabljati napredni filter v VBA, kliknite tukaj: Napredni filter VBA
Ustvarjanje samodejnega filtra v VBA
Najprej boste videli, kako samo ustvarjati Samodejni filter v razponu, tako da lahko uporabnik filtrira podatke. Podatki, ki jih bomo uporabili v primerih, so na sliki 1:
Slika 1. Podatki za primere samodejnega filtriranja
Tu je koda za ustvarjanje Samodejni filter:
1 | List1.Range ("A1: E1"). Samodejni filter |
Da bi omogočili Samodejni filter, moramo določiti glavo obsega, v našem primeru A1: E1, in uporabiti Samodejni filter metoda predmeta Domet. Zato so v našem podatkovnem obsegu aktivirani filtri:
Slika 2. Samodejni filter za podatke omogočen
Samodejni filter s parametri polja in meril
VBA vam omogoča tudi samodejno filtriranje določenega polja z določenimi vrednostmi.
Če želite to narediti, morate uporabiti parametre Polje in Merila 1 metode Samodejni filter. V tem primeru želimo filtrirati tretji stolpec (Izdelek) za Izdelek A. samo. Tukaj je koda:
12 | List1.Range ("A1: E1"). Polje samodejnega filtriranja: = 3, _Merila1: = "Izdelek A" |
V Polje parameter, lahko nastavite številko stolpca v obsegu (ne v Excelu), medtem ko v Merila 1 lahko vnesete vrednost, ki jo želite filtrirati. Po izvedbi kode je naša tabela videti tako:
Slika 3. Samodejni filter s poljem in merili
Kot lahko vidite, samo vrstice z Izdelek A. v tretjem stolpcu so prikazani v obsegu podatkov.
Samodejni filter z vrednostmi polja in več meril
Če želite filtrirati eno polje z več vrednostmi, morate uporabiti parameter Operater od Samodejni filter metoda. Če želite filtrirati več vrednosti, morate nastaviti Operater do xlFilterValues in tudi postaviti vse vrednosti Merila v nizu. V tem primeru filtriramo Izdelek stolpec za Izdelek A. in Izdelek B.. Tu je primer kode:
123 | List1.Range ("A1: E1"). Polje samodejnega filtriranja: = 3, _Merila1: = niz ("izdelek A", "izdelek B"), _Operater: = xlFilterValues |
Ko izvedemo kodo, dobimo samo vrstice z izdelkom A in izdelkom B, kot lahko vidite na sliki 4:
Slika 4. Samodejni filter z več merilnimi vrednostmi
Področje samodejnega filtriranja z več merili
Če želite filtrirati polje z več merili, ga morate uporabiti Merila 1 in Merila 2 parametre, pa tudi Operater xlAnd.
V naslednjem primeru bomo filtrirali prvi stolpec (Datum) za datume v decembru 2022. Zato imamo dva merila: datum večji od 01.01.18 in manjši od 31.12.18. To je koda:
1234 | List1.Range ("A1: E1"). Polje samodejnega filtriranja: = 1, _Merila1: = "> = 12/01/2018", _Operater: = xlInd, _Merila 2: = "<= 31.12.2018" |
Ko izvedemo kodo, lahko vidite, da so v podatkovnem obsegu prikazani samo datumi v decembru:
Slika 5. Samodejni filter z več merili za polje
Vrednosti parametrov operaterja pri metodi AutoFilter
V naslednji tabeli. lahko vidite vse možne vrednosti Operater parameter metode samodejnega filtriranja in njihovi opisi:
Operater | Opis |
xl In | Vključuje več meril - merila 1 in merila 2 |
xlOr | Vključuje eno od več meril - merilo1 ali merilo 2 |
xlTop10Items | Filtrira določeno število najvišje uvrščenih vrednosti (število, navedeno v Kriteriju1) |
xlBottom10Items | Filtrira določeno število najnižje uvrščenih vrednosti (število, navedeno v Kriteriju1) |
xlTop10Procent | Filtrira določen odstotek najvišje uvrščenih vrednosti (%, določeno v 1. kriteriju) |
xlBottom10Procent | Filtrira določen odstotek najnižje uvrščenih vrednosti (%, določeno v Kriterijih 1) |
xlFilterValues | Vključuje več merilnih vrednosti z nizom |
xlFilterCellColor | Filtrira celice za barve |
xlFilterFontColor | Filtrira celice za barve pisav |
xlFIlterIcon | Ikone filtrov |
xlFilterDynamic | Filtrirajte dinamične vrednosti |