Come applicare ed eliminare il filtro dai dati utilizzando VBA?

Filtro VBA di Excel

Lo strumento Filtro VBA viene utilizzato per ordinare o recuperare i dati specifici desiderati, la funzione Filtro automatico viene utilizzata come funzione del foglio di lavoro, tuttavia questa funzione ha altri argomenti che sono opzionali e l'unico argomento obbligatorio è l'espressione che copre l'intervallo, ad esempio fogli di lavoro ("Foglio1"). Intervallo ("A1"). Il filtro automatico applicherà il filtro alla prima colonna.

Il filtro in VBA funziona nello stesso modo in cui funziona nel foglio di lavoro. L'unica cosa diversa è che possiamo automatizzare l'attività di routine di filtrare i dati attraverso la codifica.

AutoFilter è una funzione che include molti valori di sintassi. Di seguito sono riportati i parametri coinvolti nella funzione Filtro automatico.

  • La gamma è la prima cosa che dobbiamo fornire per utilizzare l'opzione "Filtro automatico". Questo è semplicemente per quale intervallo di celle dobbiamo applicare il filtro, ad esempio, Intervallo ("A1: D50").
  • Il campo è il primo argomento nella funzione. Una volta che l'intervallo di celle è stato selezionato tramite l'oggetto VBA RANGE, dobbiamo menzionare per quale colonna dell'intervallo vogliamo applicare il filtro.
  • Il criterio 1 non è altro che nel campo selezionato , quale valore si desidera filtrare.
  • L'operatore viene utilizzato nel caso in cui si desideri utilizzare l' argomento Criteri 2 . In questa opzione, possiamo utilizzare le opzioni seguenti.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • L'elenco a discesa visibile indica se visualizzare o meno un simbolo di filtro nella colonna del filtro applicato. Se si desidera visualizzare, è possibile fornire l'argomento come VERO oppure FALSO.

Esempi per filtrare i dati utilizzando VBA

Esempio n. 1: applicare o rimuovere il filtro ai dati

Nel caso in cui si desideri applicare l'opzione di filtro ai dati, è possibile disattivare e attivare questa opzione. Ad esempio, guarda l'immagine dei dati di seguito.

Passaggio 1: fornire l'intervallo di dati

Per attivare prima l'opzione di filtro, dobbiamo fornire qual è il nostro intervallo di dati. Nell'immagine sopra, i nostri dati sono distribuiti da A1 a G31, quindi fornisci questo intervallo utilizzando un oggetto RANGE.

Codice:

Sub Filter_Example () Range ("A1: G31") End Sub
Passaggio 2: quindi accedere alla funzione Filtro automatico

Ora accedi alla funzione Filtro automatico per questo intervallo.

Codice:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Passaggio 3: eseguire il codice per abilitare il filtro

È tutto. Esegui questo codice per abilitare il filtro automatico.

Questo codice funziona come un interruttore e se il filtro non viene applicato, verrà applicato. Se già applicato, verrà rimosso.

Esempio n. 2 - Filtra valori specifici

Ora vedremo come utilizzare i parametri dell'opzione AutoFilter. Prendi gli stessi dati di cui sopra. Ad esempio, ora dobbiamo filtrare tutti i nomi di sesso "maschile".

Passaggio 1: selezionare l'intervallo e aprire la funzione di filtro automatico
Passaggio 2: quindi selezionare il campo

Nel primo argomento della funzione, cioè Campo, dobbiamo menzionare il riferimento di colonna che vorremmo filtrare. In questo esempio, dobbiamo filtrare solo i candidati "maschi", ovvero la colonna "C", quindi il numero di colonna è 3.

Passaggio 3: ora menziona i criteri

Ora per questo campo fornito, dobbiamo menzionare i criteri 1 , cioè quale valore dobbiamo filtrare nel campo menzionato . Dobbiamo filtrare "Maschio" da questa colonna.

Codice:

Sub Filter_Example () Range ("A1: G31"). Campo del filtro automatico: = 3, Criteria1: = "Male" End Sub
Passaggio 4: ed eseguire il codice

Ok, tutto qui. Questo codice filtrerà solo i candidati "maschi" ora.

Esempio # 3 - Utilizzo dell'argomento OPERATOR

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

Ora all'interno dell'istruzione WITH, fornire i primi criteri da filtrare.

Codice:

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

Nella riga successiva, fai lo stesso per "Paese" modificando "Campo" in 6 e Criteri in "Stati Uniti".

Codice:

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

Ora questo filtrerà "Laureato" solo per il paese "USA".

Cose da ricordare

  • La prima cosa per prima cosa verrà applicato solo per l'intervallo menzionato di filtri di celle.
  • Il campo non è niente in quale colonna si desidera filtrare i dati.
  • Nel caso in cui si filtrino i valori da più di una colonna, utilizzare Con.

Articoli interessanti...