VBA automatinis filtras

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ą operatoriusAutomatinis 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

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave