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

Съдържание

Excel VBA филтър

Инструментът за филтриране на VBA се използва за сортиране или за извличане на конкретните желани данни, функцията Autofilter се използва като функция на работен лист, но тази функция има други аргументи с нея, които не са задължителни и единственият задължителен аргумент е изразът, който покрива диапазона, например работни листове („Sheet1“). Обхват („A1“). Автофилтърът ще приложи филтъра към първата колона.

Филтърът във VBA работи по същия начин, както работи в работния лист. Единственото нещо различно е, че можем да автоматизираме рутинната задача за филтриране на данните чрез кодиране.

AutoFilter е функция, която включва много синтаксисни стойности. По-долу са показани параметрите, включени във функцията AutoFilter.

  • Гамата е първото нещо, което трябва да предоставим, за да използваме опцията „AutoFilter“. Това е просто за кой диапазон от клетки трябва да приложим филтъра, например Range (“A1: D50”).
  • Полето е първият аргумент във функцията. След като диапазонът от клетки е избран чрез обекта VBA RANGE, трябва да споменем за коя колона от диапазона искаме да приложим филтъра.
  • Критерий 1 е нищо друго освен в избраното поле, каква стойност искате да филтрирате.
  • Операторът се използва в случай, че искате да използвате аргумента Критерии 2 . В тази опция можем да използваме следните опции.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Видимо падащо меню е дали да се покаже символ на филтър в приложената колона или не. Ако искате да покажете, тогава можете да предоставите аргумента като TRUE или FALSE.

Примери за филтриране на данни с помощта на VBA

Пример # 1 - Прилагане или премахване на филтър към данните

В случай, че искате да приложите опцията за филтриране към данните, тогава можем да изключим и включим тази опция. Например погледнете изображението с данни по-долу.

Стъпка 1: Предоставяне на диапазон от данни

За да активираме първо опцията за филтриране, трябва да предоставим какъв е нашият диапазон от данни. В горното изображение нашите данни са разпределени от A1 до G31, така че предоставете този диапазон, като използвате обект RANGE.

Код:

Sub Filter_Example () Обхват ("A1: G31") Край Sub
Стъпка 2: След това отворете функцията AutoFilter

Сега отворете функцията AutoFilter за този диапазон.

Код:

Sub Filter_Example () Диапазон ("A1: G31"). Автофилтър Край Sub
Стъпка 3: Стартирайте кода, за да активирате филтъра

Това е всичко. Изпълнете този код, за да активирате автоматичния филтър.

Този код работи като превключвател и ако филтърът не е приложен, той ще се приложи. Ако вече е приложен, той ще се премахне.

Пример # 2 - Филтриране на специфични стойности

Сега ще видим как да използваме параметрите на опцията AutoFilter. Вземете същите данни, както по-горе. Например, сега трябва да филтрираме всички „мъжки“ имена на пола.

Стъпка 1: Изберете диапазон и отворете функцията за автоматично филтриране
Стъпка 2: След това изберете поле

В първия аргумент на функцията, т.е. Field, трябва да споменем препратката към колоната, която бихме искали да филтрираме. В този пример трябва да филтрираме само кандидати „мъже“, което е колона „С“, така че номерът на колоната е 3.

Стъпка 3: Сега споменете критерии

Сега за това предоставено поле трябва да споменем критериите 1, т.е. каква стойност трябва да филтрираме в споменатото поле. Трябва да филтрираме „Мъж“ от тази колона.

Код:

Подфилтър_Пример () Диапазон ("A1: G31"). Поле за автоматично филтриране: = 3, Критерии1: = "Мъжки" Край
Стъпка 4: И стартирайте кода

Добре, това е всичко. Този код ще филтрира само кандидати „мъже“ сега.

Пример # 3 - Използване на аргумент OPERATOR

Когато искате да филтрирате повече от една стойност от колоната, трябва да използваме аргумента „Оператор“. Например от колоната „Основен“ трябва да филтрираме само „Математика и политика“, тогава трябва да използваме този аргумент.

Стъпка 1: Изберете диапазон и поле за автоматично филтриране

Първо, предоставете диапазона от клетки и полета .

Код:

Подфилтър_Пример () Диапазон ("A1: G31"). Поле за автоматично филтриране: = 5, Краен под
Стъпка 2: Въведете критерии 1 като математика

За споменатото заявление трябва да предоставим критерии 1 като „Математика“.

Код:

Подфилтър_Пример () Диапазон ("A1: G31"). Поле за автоматичен филтър: = 5, Критерии1: = "Математика", Крайна подсистема
Стъпка 3: Използвайте Operator xl

Тъй като трябва да филтрираме още една стойност от същата колона или поле, използвайте символа на оператора като „xlOr“.

Код:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Сега вътре в инструкцията WITH, дайте първите критерии, които трябва да бъдат филтрирани.

Код:

Подфилтър_Пример () с диапазон ("A1: G31"). Поле AutoFilter: = 4, Критерии1: = "Завършване" Край с край Sub

Сега в следващия ред направете същото за „Държава“, като промените „Поле“ като 6 и Критериите като „САЩ“.

Код:

Подфилтър_Пример () с обхват ("A1: G31"). Поле на AutoFilter: = 4, Критерии1: = "Завършил". Поле на AutoFilter: = 6, Критерии1: = "US" End with End Sub

Сега това ще филтрира „Завършил“ само за държавата „САЩ“.

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

  • Първото нещо първо само за споменатия диапазон от клетки филтър ще бъде приложено.
  • Полето не е нищо, в коя колона искате да филтрирате данните.
  • В случай, че филтрирате стойности от повече от една колона, използвайте С.

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