У ВБА можете да креирате АутоФилтер да бисте филтрирали опсег ћелија или Екцел табелу. У овом водичу ћете научити како да креирате АутоФилтер за једну или више колона и за више услова.
Ако желите да научите како да користите напредни филтер у ВБА, кликните овде: ВБА напредни филтер
Креирање аутофилтера у ВБА
Прво ћете видети како само стварати АутоФилтер у опсегу, тако да корисник може филтрирати податке. Подаци које ћемо користити у примерима су на слици 1:
Слика 1. Подаци за примере аутофилтера
Ево кода за креирање АутоФилтер:
1 | Схеет1.Ранге ("А1: Е1"). Аутофилтер |
Да би се омогућило АутоФилтер, морамо специфицирати заглавље распона, у нашем случају А1: Е1, и користити АутоФилтер метод објекта Домет. Због тога су наши опсези података активирали филтере:
Слика 2. Аутоматски филтер омогућен за податке
Аутофилтер са параметрима поља и критеријума
ВБА вам такође омогућава да аутоматски филтрирате одређено поље са одређеним вредностима.
Да бисте то урадили, морате користити параметре Поље и Критеријуми1 метода АутоФилтер. У овом примеру желимо да филтрирамо трећу колону (Производ) за Производ А. само. Ево кода:
12 | Схеет1.Ранге ("А1: Е1"). Поље аутофилтера: = 3, _Критеријуми1: = "Производ А" |
У Поље параметар, можете поставити број колоне у опсегу (не у Екцелу), док је у Критеријуми1 можете ставити вредност коју желите да филтрирате. Након извршавања кода, наша табела изгледа овако:
Слика 3. Аутофилтер са пољем и критеријумима
Као што видите, само редови са Производ А. у трећој колони приказани су у опсегу података.
Аутофилтер са вредностима поља и више критеријума
Ако желите да филтрирате једно поље са неколико вредности, морате да користите параметар Оператер од АутоФилтер метода. Да бисте филтрирали више вредности, морате да подесите Оператер до клФилтерВалуес а такође и ставити све вредности Критеријуми у низу. У овом примеру филтрирамо Производ колона за Производ А. и Производ Б.. Ево примера кода:
123 | Схеет1.Ранге ("А1: Е1"). Поље аутофилтера: = 3, _Критеријуми1: = Поље ("Производ А", "Производ Б"), _Оператор: = клФилтерВалуес |
Када извршимо код, добијамо само редове са производом А и производом Б, као што можете видети на слици 4:
Слика 4. Аутофилтер са више вредности критеријума
Опсег података аутоматског филтрирања са више критеријума
Ако желите да филтрирате поље са више критеријума, морате га користити Критеријуми1 и Критеријуми2 параметре, али и Оператор клАнд.
У следећем примеру ћемо филтрирати прву колону (Датум) за датуме у децембру 2022. Стога имамо два критеријума: датум већи од 01.01.18. и мањи од 31.12.18. Ово је код:
1234 | Схеет1.Ранге ("А1: Е1"). Поље аутофилтера: = 1, _Критеријуми1: = "> = 12/01/2018", _Оператер: = клАнд, _Критеријуми2: = "<= 31.12.2018" |
Када извршимо код, видећете да су у опсегу података приказани само датуми у децембру:
Слика 5. Аутофилтер са више критеријума за поље
Вредности параметара оператора методе АутоФилтер
У следећој табели. можете видети све могуће вредности Оператер параметар методе АутоФилтер и њихови описи:
Оператер | Опис |
клАнд | Укључује више критеријума - Критеријуми1 и Критеријум 2 |
клОр | Укључује један од више критеријума - критеријум1 или критеријум 2 |
клТоп10Итемс | Филтрира одређени број највиших вредности (број наведен у критеријумима 1) |
клБоттом10Итемс | Филтрира одређени број најнижих вредности (број наведен у критеријумима 1) |
клТоп10Перцент | Филтрира одређени проценат вредности са највишим рангом (% наведен у критеријумима 1) |
клБоттом10Перцент | Филтрира одређени проценат најнижих вредности (% наведених у критеријумима 1) |
клФилтерВалуес | Укључује више вредности критеријума са низом |
клФилтерЦеллЦолор | Филтрира ћелије за боје |
клФилтерФонтЦолор | Филтрира ћелије за боје фонтова |
клФИлтерИцон | Иконе филтера |
клФилтерДинамиц | Филтрирајте динамичке вредности |