VBA galite kurti Automatinis filtras kad būtų galima filtruoti ląstelių diapazoną arba „Excel“ lentelę. Šioje pamokoje sužinosite, kaip kurti Automatinis filtras vienam ar keliems stulpeliams ir kelioms sąlygoms.
Jei norite sužinoti, kaip naudoti išplėstinį filtrą VBA, spustelėkite čia: Išplėstinis VBA filtras
Automatinio filtro kūrimas VBA
Pirma, pamatysite, kaip tiesiog kurti Automatinis filtras diapazone, kad vartotojas galėtų filtruoti duomenis. Duomenys, kuriuos naudosime pavyzdžiuose, yra 1 paveiksle:
1 paveikslas. Automatinio filtro pavyzdžių duomenys
Čia yra kūrimo kodas Automatinis filtras:
1 | Sheet1.Range („A1: E1“). Automatinis filtras |
Norėdami įgalinti Automatinis filtras, turime nurodyti diapazono antraštę, mūsų atveju A1: E1, ir naudoti Automatinis filtras objekto metodas diapazonas. Todėl mūsų duomenų diapazone yra suaktyvinti filtrai:
2 pav. Duomenims įjungtas automatinis filtras
Automatinis filtras su lauko ir kriterijų parametrais
VBA taip pat leidžia automatiškai filtruoti tam tikrą lauką su tam tikromis reikšmėmis.
Norėdami tai padaryti, turite naudoti parametrus Laukas ir Kriterijai1 metodo Automatinis filtras. Šiame pavyzdyje norime filtruoti trečiąjį stulpelį (Produktas) dėl Produktas A. tik. Čia yra kodas:
12 | Sheet1.Range ("A1: E1"). Automatinio filtro laukas: = 3, _1 kriterijus: = "A produktas" |
Viduje konors Laukas parametrą, galite nustatyti stulpelio numerį diapazone (ne „Excel“), o Kriterijai1 galite įdėti vertę, kurią norite filtruoti. Įvykdę kodą, mūsų lentelė atrodo taip:
3 paveikslas. Automatinis filtras su lauku ir kriterijais
Kaip matote, tik eilutės su Produktas A. trečiame stulpelyje rodomi duomenų diapazone.
Automatinis filtras su lauko ir kelių kriterijų reikšmėmis
Jei norite filtruoti vieną lauką su keliomis reikšmėmis, turite naudoti parametrą operatorius iš Automatinis filtras metodas. Norėdami filtruoti kelias vertes, turite nustatyti operatorius į xlFilterValues taip pat įdėti visas vertybes Kriterijai masyve. Šiame pavyzdyje mes filtruojame Produktas stulpelis skirtas Produktas A. ir Produktas B.. Štai kodo pavyzdys:
123 | Sheet1.Range ("A1: E1"). Automatinio filtro laukas: = 3, _1 kriterijus: = masyvas („A produktas“, „B produktas“), _Operatorius: = xlFilterValues |
Kai vykdome kodą, gauname tik eilutes su produktu A ir B, kaip matote 4 paveikslėlyje:
4 paveikslėlis. Automatinis filtras su keliomis kriterijų reikšmėmis
Automatinio filtravimo duomenų diapazonas su keliais kriterijais
Jei norite filtruoti lauką pagal kelis kriterijus, turite naudoti Kriterijai1 ir Kriterijai2 parametrus, bet ir Operatorius xlAnd.
Kitame pavyzdyje mes filtruosime pirmąjį stulpelį (Data) datoms 2022 m. gruodžio mėn. Todėl turime du kriterijus: datą, didesnę nei 18/01/18 ir mažesnę nei 18/12/31. Tai yra kodas:
1234 | Sheet1.Range ("A1: E1"). Automatinio filtro laukas: = 1, _1 kriterijus: = "> = 2018-12-01", _Operatorius: = xl Ir, _2 kriterijus: = "<= 2018-12-31" |
Kai vykdome kodą, matote, kad duomenų diapazone rodomos tik gruodžio mėn.
5 paveikslėlis. Automatinis filtras su keliais lauko kriterijais
„AutoFilter“ metodo operatoriaus parametrų vertės
Kitoje lentelėje. galite pamatyti visas galimas operatorius „AutoFilter“ metodo parametras ir jų aprašymai:
operatorius | apibūdinimas |
xlIr | Apima kelis kriterijus - 1 ir 2 kriterijus |
xlOr | Apima vieną iš daugelio kriterijų - 1 kriterijų arba 2 kriterijų |
xlTop10Items | Filtruoja tam tikrą skaičių aukščiausių reitingų (skaičius nurodytas 1 kriterijuje) |
xlBottom10Items | Filtruoja tam tikrą skaičių žemiausiai įvertintų verčių (skaičius nurodytas 1 kriterijuje) |
xlTop10Percent | Filtruoja tam tikrą procentą aukščiausių reitingų verčių (% nurodyta 1 kriterijuje) |
xlApačioje10 proc | Filtruoja tam tikrą procentą žemiausių reitingų verčių (% nurodyta 1 kriterijuje) |
xlFilterValues | Apima kelias kriterijų reikšmes su masyvu |
xlFilterCellColor | Filtruoja ląstelių langelius pagal spalvas |
xlFilterFontColor | Filtruoja šrifto spalvų langelius |
xlFIlterIcon | Filtruoja piktogramas |
xlFilterDynamic | Filtruokite dinamines vertes |