Ako použiť a odstrániť filter z údajov pomocou VBA?

Excel VBA filter

Nástroj VBA Filter sa používa na triedenie alebo načítanie požadovaných konkrétnych údajov. Funkcia Autofilter sa používa ako funkcia pracovného hárka, táto funkcia však má ďalšie argumenty, ktoré sú voliteľné, a jediným povinným argumentom je výraz, ktorý pokrýva rozsah, napríklad pracovné listy („List1“). Rozsah („A1“). Automatický filter použije filter na prvý stĺpec.

Filtrovanie vo formáte VBA funguje rovnako ako v hárku. Jediné, čo sa líši, je, že môžeme automatizovať rutinnú úlohu filtrovania údajov pomocou kódovania.

Automatický filter je funkcia, ktorá obsahuje mnoho hodnôt syntaxe. Ďalej sú uvedené parametre, ktoré sú súčasťou funkcie automatického filtra.

  • Rozsah je prvá vec, ktorú musíme dodať, aby sme mohli používať možnosť „Automatický filter“. Toto je jednoducho to, pre aký rozsah buniek musíme použiť filter, napríklad Range (“A1: D50”).
  • Toto pole je prvým argumentom vo funkcii. Po výbere rozsahu buniek prostredníctvom objektu VBA RANGE musíme spomenúť, pre ktorý stĺpec rozsahu chceme filter použiť.
  • Kritérium 1 nie je nič iné ako vo vybranom poli, akú hodnotu chcete odfiltrovať.
  • Operátor sa používa v prípade, že chcete použiť argument Kritérium 2 . V tejto možnosti môžeme použiť nižšie uvedené možnosti.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Viditeľné rozbaľovacie políčko je, či sa má v stĺpci Použitý filter zobraziť symbol filtra alebo nie. Ak chcete zobraziť, môžete argument zadať ako TRUE alebo FALSE.

Príklady filtrovania údajov pomocou VBA

Príklad č. 1 - Aplikácia alebo odstránenie filtra na údaje

Ak chcete na údaje použiť možnosť filtra, môžeme túto možnosť vypnúť a zapnúť. Napríklad si pozrite nasledujúci dátový obrázok.

Krok 1: Rozsah údajov o dodávkach

Ak chcete najskôr aktivovať možnosť filtra, musíme zadať, aký je náš rozsah údajov. Na vyššie uvedenom obrázku sú naše údaje rozptýlené od A1 do G31, takže tento rozsah zadajte pomocou objektu RANGE.

Kód:

Sub Filter_Example () Range ("A1: G31") End Sub
Krok 2: Potom vstúpte do funkcie Automatický filter

Teraz pre tento rozsah získate prístup k funkcii Automatický filter.

Kód:

Sub Filter_Example () Range ("A1: G31"). Subfilter End Sub
Krok 3: Spustením kódu povolíte filter

To je všetko. Spustením tohto kódu povolíte automatický filter.

Tento kód funguje ako prepínač a ak sa filter nepoužije, použije sa. Ak už je aplikovaný, odstráni sa.

Príklad č. 2 - Filtrovať konkrétne hodnoty

Teraz uvidíme, ako využiť parametre možnosti Automatický filter. Vezmite rovnaké údaje ako vyššie. Napríklad teraz musíme odfiltrovať všetky mená pohlaví mužov.

Krok 1: Vyberte rozsah a otvorte funkciu automatického filtra
Krok 2: Potom vyberte pole

V prvom argumente funkcie, tj. Pole, musíme spomenúť odkaz na stĺpec, ktorý by sme chceli odfiltrovať. V tomto príklade musíme filtrovať iba kandidátov „Muž“, čo je stĺpec „C“, takže číslo stĺpca je 3.

Krok 3: Teraz uveďte kritériá

Teraz pre toto dodané Pole musíme spomenúť Kritérium 1, tj. Akú hodnotu musíme filtrovať v uvedenom poli. Z tohto stĺpca musíme vyfiltrovať slovo „muž“.

Kód:

Sub Filter_Example () Range ("A1: G31"). Pole automatického filtra: = 3, kritériá 1: = "male" koncový sub
Krok 4: A spustite kód

Dobre, to je všetko. Tento kód teraz filtruje iba kandidátov „Muža“.

Príklad č. 3 - Použitie 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

Teraz vo vnútri príkazu WITH zadajte prvé kritériá, ktoré sa majú filtrovať.

Kód:

Sub filter_Example () s rozsahom ("A1: G31"). Pole AutoFilter: = 4, Criteria1: = "Absolvent" Koniec koncovým sub

Teraz v ďalšom riadku urobte to isté pre „Krajina“ zmenou „Pole“ na 6 a Kritérií ako „USA“.

Kód:

Sub filter_Example () s rozsahom ("A1: G31"). Pole AutoFilter: = 4, Kritérium1: = "Absolvent". Pole AutoFilter: = 6, Kritériá1: = "USA" Koniec s Koncom Sub

Týmto sa vyfiltruje výraz „Absolvent“ iba pre krajinu „USA“.

Na čo treba pamätať

  • Použije sa prvá vec najskôr iba pre spomínaný rozsah buniek.
  • Toto pole neobsahuje nič, v ktorom stĺpci chcete filtrovať údaje.
  • V prípade filtrovania hodnôt z viac ako jedného stĺpca použite S.

Zaujímavé články...