VBA Автофилтър

Във VBA можете да създавате Автофилтър за да филтрирате диапазон от клетки или таблица в Excel. В този урок ще научите как да създавате Автофилтър за една или няколко колони и за множество условия.

Ако искате да научите как да използвате разширен филтър във VBA, щракнете тук: VBA разширен филтър

Създаване на автофилтър във VBA

Първо, ще видите как просто да създавате Автофилтър в диапазон, така че потребителят може да филтрира данните. Данните, които ще използваме в примерите, са на Изображение 1:

Изображение 1. Данни за примери за автофилтър

Ето кода за създаване Автофилтър:

1 Sheet1.Range ("A1: E1"). Автофилтър

За да активирате Автофилтър, трябва да посочим заглавката на диапазона, в нашия случай A1: E1, и да използваме Автофилтър метод на обекта Обхват. В резултат на това в нашия диапазон от данни са активирани филтри:

Изображение 2. Автофилтърът е активиран за данните

Автофилтър с параметри на полето и критериите

VBA също ви позволява автоматично да филтрирате определено поле с определени стойности.

За да направите това, трябва да използвате параметри Поле и Критерии 1 на метода Автофилтър. В този пример искаме да филтрираме третата колона (Продукт) за Продукт А. само. Ето кода:

12 Sheet1.Range ("A1: E1"). Поле на автофилтър: = 3, _Критерии1: = "Продукт А"

В Поле параметър, можете да зададете номера на колоната в диапазона (не в Excel), докато в Критерии 1 можете да поставите стойността, която искате да филтрирате. След изпълнение на кода нашата таблица изглежда така:

Изображение 3. Автофилтър с поле и критерии

Както можете да видите, само редове с Продукт А. в третата колона се показват в диапазона от данни.

Автофилтър с полеви и многокритериални стойности

Ако искате да филтрирате едно поле с няколко стойности, трябва да използвате параметъра Оператор от Автофилтър метод. За да филтрирате няколко стойности, трябва да зададете Оператор да се xlFilterValues и също така да се поставят всички стойности на Критерии в масив. В този пример ние филтрираме Продукт колона за Продукт А. и Продукт Б. Ето примера на кода:

123 Sheet1.Range ("A1: E1"). Поле за автофилтър: = 3, _Критерии 1: = Масив („Продукт А“, „Продукт Б“), _Оператор: = xlFilterValues

Когато изпълняваме кода, получаваме само редове с Продукт А и Продукт В, както можете да видите на Изображение 4:

Изображение 4. Автофилтър с множество стойности на критерии

Обхват на данни с автофилтър с множество критерии

Ако искате да филтрирате поле с множество критерии, трябва да използвате Критерии 1 и Критерии 2 параметри, но и Оператор xlAnd.

В следващия пример ще филтрираме първата колона (Дата) за дати през декември 2022 г. Следователно имаме два критерия: дата, по -голяма от 01.01.18 г. и по -малка от 31.12.18 г. Това е кодът:

1234 Sheet1.Range ("A1: E1"). Поле за автофилтър: = 1, _Критерии1: = "> = 12/01/2018", _Оператор: = xlAnd, _Критерии 2: = "<= 31.12.2018"

Когато изпълняваме кода, можете да видите, че само датите през декември се показват в диапазона от данни:

Изображение 5. Автофилтър с множество критерии за полето

Стойностите на параметрите на оператора на метода AutoFilter

В следващата таблица. можете да видите всички възможни стойности на Оператор параметър на метода AutoFilter и техните описания:

Оператор Описание
xl И Включва множество критерии - Критерии 1 и Критерии 2
xlOr Включва един от множеството критерии - Критерии 1 или Критерии 2
xlTop10Items Филтрира определен брой най -високо класирани стойности (номер, посочен в Criteria1)
xlBottom10Items Филтрира определен брой най -ниско класирани стойности (номер, посочен в Criteria1)
xlTop10Percent Филтрира определен процент от най -високо класираните стойности (%, посочен в Критерии 1)
xlBottom10Percent Филтрира определен процент от най -ниско класираните стойности (%, посочен в Критерии 1)
xlFilterValues Включва множество стойности на критерии с масив
xlFilterCellColor Филтрира клетки за цветове
xlFilterFontColor Филтрира клетките за цветовете на шрифта
xlFIlterIcon Икони за филтриране
xlFilterDynamic Филтрирайте динамичните стойности

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave