Jak použít a odstranit filtr z dat pomocí VBA?

Filtr Excel VBA

Nástroj VBA Filter se používá k třídění nebo načtení požadovaných konkrétních dat, funkce automatického filtru se používá jako funkce listu, ale tato funkce má s sebou další argumenty, které jsou volitelné a jediným povinným argumentem je výraz, který pokrývá rozsah například pracovní listy („List1“). Rozsah („A1“). Automatický filtr použije filtr na první sloupec.

Filtr ve VBA funguje stejně jako v listu. Jediné, co se liší, je to, že můžeme automatizovat rutinní úkol filtrování dat pomocí kódování.

Automatický filtr je funkce, která obsahuje mnoho hodnot syntaxe. Níže jsou uvedeny parametry funkce automatického filtru.

  • Rozsah je první věc, kterou musíme dodat, abychom mohli použít volbu „Automatický filtr“. Jedná se jednoduše o to, pro jaký rozsah buněk musíme použít filtr, například Range („A1: D50“).
  • Pole je prvním argumentem ve funkci. Jakmile je rozsah buněk vybrán prostřednictvím objektu VBA RANGE, musíme zmínit, pro který sloupec rozsahu chceme použít filtr.
  • Kritérium 1 není nic jiného než ve vybraném poli, jakou hodnotu chcete odfiltrovat.
  • Operátor se používá v případě, že chcete použít argument Kritérium 2 . V této možnosti můžeme použít níže uvedené možnosti.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Viditelným rozbalovacím seznamem je, zda se má ve sloupci použitém filtru zobrazit symbol filtru. Chcete-li zobrazit, můžete argument zadat jako TRUE nebo FALSE.

Příklady filtrování dat pomocí VBA

Příklad č. 1 - Použití nebo odebrání filtru na data

V případě, že chcete na data použít možnost filtrování, můžeme tuto možnost vypnout a znovu zapnout. Podívejte se například na níže uvedený datový obrázek.

Krok 1: Rozsah dat dodávek

Chcete-li nejprve aktivovat možnost filtru, musíme zadat, jaký je náš datový rozsah. Na výše uvedeném obrázku jsou naše data rozložena napříč od A1 po G31, takže tento rozsah zadejte pomocí objektu RANGE.

Kód:

Sub Filter_Example () Range ("A1: G31") End Sub
Krok 2: Poté přejděte do funkce automatického filtru

Nyní pro tento rozsah aktivujte funkci automatického filtru.

Kód:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Krok 3: Spuštěním kódu povolte filtr

To je vše. Spuštěním tohoto kódu povolíte automatický filtr.

Tento kód funguje jako přepínač a pokud se filtr nepoužije, použije se. Pokud již byl použit, bude odstraněn.

Příklad č. 2 - Filtrování konkrétních hodnot

Nyní uvidíme, jak použít parametry možnosti Automatický filtr. Vezměte stejná data jako výše. Například nyní musíme odfiltrovat všechna „mužská“ jména pohlaví.

Krok 1: Vyberte rozsah a otevřete funkci automatického filtru
Krok 2: Poté vyberte pole

V prvním argumentu funkce, tj. Field, musíme zmínit odkaz na sloupec, který bychom chtěli odfiltrovat. V tomto příkladu musíme filtrovat pouze „mužské“ kandidáty, což je sloupec „C“, takže číslo sloupce je 3.

Krok 3: Nyní uveďte kritéria

Nyní pro toto dodané Pole musíme zmínit Kritérium 1, tj. Jakou hodnotu musíme filtrovat v uvedeném Poli. Z tohoto sloupce musíme filtrovat „Muž“.

Kód:

Sub Filter_Example () Range ("A1: G31"). AutoFilter Field: = 3, Criteria1: = "Male" End Sub
Krok 4: A spusťte kód

Dobře, to je vše. Tento kód nyní filtruje pouze „mužské“ kandidáty.

Příklad č. 3 - Použití argumentu OPERÁTOR

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

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

Nyní uvnitř příkazu WITH zadejte první kritéria, která se mají filtrovat.

Kód:

Sub Filter_Example () With Range ("A1: G31"). AutoFilter Field: = 4, Criteria1: = "Graduate" End with End Sub

Nyní v dalším řádku proveďte totéž pro „Země“ změnou „Pole“ na 6 a kritérií jako „USA“.

Kód:

Sub Filter_Example () With Range ("A1: G31"). AutoFilter Field: = 4, Criteria1: = "Graduate". AutoFilter Field: = 6, Criteria1: = "US" End With End Sub

Nyní bude filtrováno „Absolvent“ pouze pro zemi „USA“.

Věci k zapamatování

  • Bude použita první věc nejprve pouze pro uvedený rozsah buněk.
  • Pole není nic, ve kterém sloupci chcete filtrovat data.
  • V případě filtrování hodnot z více než jednoho sloupce použijte S.

Zajímavé články...