Във 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 | Филтрирайте динамичните стойности |