VBA AutoFilter - Как да използвам критериите за автоматично филтриране на VBA за филтриране на данни?

Съдържание

Excel VBA AutoFilter

AutoFilter във VBA се използва като израз и синтаксисът за него, както следва израз. Автофилтър (поле, критерии 1, оператор, критерии 2, падащо меню) всички аргументи не са задължителни. Филтърът е полезен при филтрирането на конкретни данни от огромните данни.

Да предположим, че сте редовен потребител, тогава филтрите на Excel не са нещо странно за вас. Някои от инструментите, които използваме в работния лист, също са интегрирани във VBA, а опцията за автоматично филтриране е един от важните инструменти, налични във VBA. Както всички знаем, Excel филтърът е достъпен в раздела с данни.

Използвайки тази опция за филтриране, можем да си поиграем с данните. Ако имате работа с минимално количество данни и ако смятате, че опцията за автоматично филтриране на VBA наистина не се изисква, можете да продължите да използвате опцията за филтриране на работния лист.

Ако имате работа с огромно количество данни, можете да използвате опцията за автоматично филтриране, за да опростите потока на процеса.

Синтаксис на функцията за автоматично филтриране

AutoFilter в Excel VBA може да се използва с обект от диапазон. Подобно на другите ни функции, и тук има свой синтаксис.

  • Обхват: Обхватът е просто в какъв диапазон искате да приложите филтъра.
  • Поле: Полето означава от коя колона на диапазона, който сте избрали, да искате да филтрирате данните. Колона ще се брои отляво надясно.

Например, ако диапазонът ви е от A1 до D100 и искате да приложите филтър за колона D, тогава номерът на полето ви е 4, защото в избрания диапазон D е четвъртата колона.

Критерии 1: В полето сте избрали какво искате да филтрирате.

  • Оператор: Ако искате да приложите повече от един критерий за филтриране на данните, тогава трябва да използваме символи на оператора. Някои от кодовете на оператора са както по-долу.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Критерии 2: Кое е второто нещо, което искате да филтрирате заедно с Критерии 1?

  • Видимо падащо меню: Искате ли да покажете иконата на филтър fop down във филтрираната колона. Ако искате да покажете TRUE е аргументът, ако не FALSE, е аргументът.

Как да приложите филтър с помощта на VBA AutoFilter? (с пример)

Да приемем по-долу данните, по които работите.

Сега, като използваме VBA код, ще приложим филтъра. Следвайте стъпките по-долу, за да приложите филтъра.

Стъпка 1: Стартирайте подпроцедурата, като дадете име на макроса.

Код:

Sub AutoFilter_Example1 () Край Sub

Стъпка 2: Първото нещо е в какъв диапазон трябва да приложим филтъра. В този случай трябва да приложим диапазона от диапазон А1 до Е25.

Код:

Sub AutoFilter_Example1 () Диапазон ("A1: E25") Край Sub

Стъпка 3: След като диапазонът е избран, сега приложете опцията за автоматично филтриране.

Код:

Sub AutoFilter_Example1 () Диапазон ("A1: E25"). AutoFilter End Sub

Не избираме никакви стойности с помощта на автофилтър. В този момент ние просто прилагаме филтъра.

Стартирайте кода с помощта на клавиша F5 или ръчно, той ще вмъкне филтър за избрания диапазон.

Така че е приложил филтър към данните. Сега ще видим как да филтрираме данните.

Пример # 1 - Филтриране на данни с помощта на AutoFilter

Помислете за същите данни от горния пример. Сега трябва да филтрираме отдел „Финанси“ от колоната на отдела.

Стъпка 1: След като филтърът е приложен, първият аргумент е да споменем от коя колона филтрираме данните. В този случай трябва да филтрираме данните от колоната на отдела, така че номерът на колоната е 5.

Код:

Sub AutoFilter_Example1 () Диапазон ("A1: E25"). Поле на AutoFilter: = 5, End Sub

Step 2: Criteria 1 is nothing but what we want to filter from the 5th column. So we need to filter out “Finance.”

Code:

Sub AutoFilter_Example1() Range("A1:E25").AutoFilter Field:=5, Criteria1:="Finance" End Sub

So that’s all, run this code manually, or through the F5 key, it will filter out only “Finance” from the list.

Example #2 - Operator in AutoFilter

We have seen how to filter the single value. Now we will see how to filter multiple elements. Assume along with “Finance” you want to filter the “Sales” department as well, so we can do this by using Operators.

Step 1: After applying the first criteria in the next argument, select the operator as “xlOr.”

Code:

Sub AutoFilter_Example2() Range("A1:E25").AutoFilter Field:=5, Criteria1:="Finance", Operator:=xlOr End Sub

Step 2: Now, in Criteria 2, mention the value as “Sales.”

Code:

Sub AutoFilter_Example2() Range("A1:E25").AutoFilter Field:=5, Criteria1:="Finance", Operator:=xlOr, Criteria2:="Sales" End Sub

Step 3: Ok, done run this code using the F5 key or manually, it will filter out both “Finance” & “Sales.”

In the Operator argument, I have used “xlOr” this will select both “Finance” & “Sales” under the filter.

Example #3 - Filter Numbers using AutoFilter

Using the Operator symbol “XlAnd,” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are>1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub

Step 2: Criteria 1 is>1000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4,Criteria1:=">1000", End Sub

Step 3: Here, we need to match both the criteria, so use “xlAnd” as the operator.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub

Step 4: Criteria 2 will <3000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, Criteria2:="<3000" End Sub

Now, if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column, which are>1000 but <3000.

Example #4 - Filter from Different Columns using AutoFilter

In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers, which are>25000 but <40000.

You can use the below code does that.

Code:

Sub AutoFilter_Example4 () с обхват ("A1: E25"). Поле AutoFilter: = 5, критерии1: = "финанси". Поле AutoFilter: = 2, критерии1: = "> 25000", оператор: = xlAnd, критерии2: = " <40000 "Край с край Sub

Това ще филтрира две колони.

Изпълнете този код, като използвате клавиша F5, или можете да стартирате ръчно.

Неща за запомняне

  • Опитайте различни комбинации под Оператор, за да получите знанията за VBA AutoFilter.
  • Ако не сте сигурни какво да поставите, опитайте да използвате макрорекордера.
  • Ако искате да филтрирате текстови стойности, трябва да ги предоставите в двойни кавички.
  • Използвайте инструкция WITH, за да приложите повече от един филтър за колони.

Интересни статии...