Filtro automatico VBA

Filtro automatico VBA di Excel

Il filtro automatico in VBA viene utilizzato come espressione e la sua sintassi è la seguente Espressione. Filtro automatico (Campo, Criteri 1, Operatore, Criteri 2, Elenco a discesa) tutti gli argomenti sono facoltativi. Il filtro è utile per filtrare i dati particolari dai dati enormi.

Se sei un utente normale, i filtri Excel non sono una cosa strana per te. Alcuni degli strumenti che utilizziamo nel foglio di lavoro sono anche integrati in VBA e l'opzione di filtro automatico è uno degli strumenti importanti disponibili in VBA. Come tutti sappiamo, il filtro Excel è disponibile nella scheda dati.

Usando questa opzione di filtro possiamo giocare con i dati. Se hai a che fare con una quantità minima di dati e se ritieni che l'opzione del filtro automatico VBA non sia realmente necessaria, puoi continuare a utilizzare l'opzione del filtro del foglio di lavoro.

Se hai a che fare con una quantità enorme di dati, puoi utilizzare un'opzione Filtro automatico per semplificare il flusso del processo.

Sintassi della funzione Filtro automatico

Filtro automatico in Excel VBA può essere utilizzato con un oggetto intervallo. Come le altre nostre funzioni, anche questa ha una propria sintassi.

  • Intervallo: l' intervallo è semplicemente l'intervallo in cui desideri applicare il filtro.
  • Campo: campo indica da quale colonna dell'intervallo selezionato desideri filtrare i dati. Verrà contata una colonna da sinistra a destra.

Ad esempio, se il tuo intervallo va da A1 a D100 e desideri applicare un filtro per la colonna D, il numero del tuo campo è 4 perché nell'intervallo selezionato D è la quarta colonna.

Criteri 1: nel campo hai selezionato ciò che desideri filtrare.

  • Operatore: se si desidera applicare più di un criterio per filtrare i dati, è necessario utilizzare i simboli degli operatori. Alcuni dei codici operatore sono i seguenti.

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

Criteri 2: qual è la seconda cosa che vuoi filtrare insieme ai criteri 1?

  • Menu a discesa visibile: si desidera visualizzare l'icona del filtro in basso nella colonna filtrata. Se si desidera visualizzare VERO è l'argomento, se non FALSO è l'argomento.

Come applicare il filtro utilizzando il filtro automatico VBA? (con esempio)

È possibile scaricare questo modello di filtro automatico VBA qui - Modello di filtro automatico VBA

Assumi di seguito i dati su cui stai lavorando.

Ora utilizzando il codice VBA, applicheremo il filtro. Segui i passaggi seguenti per applicare il filtro.

Passaggio 1: avviare la sottoprocedura assegnando un nome alla macro.

Codice:

 Sub AutoFilter_Example1 () End Sub 

Passaggio 2: la prima  cosa è in quale intervallo dobbiamo applicare il filtro. In questo caso, dobbiamo applicare l'intervallo compreso tra A1 e E25.

Codice:

 Sub AutoFilter_Example1 () Range ("A1: E25") End Sub 

Passaggio 3: una volta selezionato l'intervallo, ora applica l'opzione del filtro automatico.

Codice:

 Sub AutoFilter_Example1 () Intervallo ("A1: E25"). AutoFilter End Sub 

Non stiamo selezionando alcun valore utilizzando un filtro automatico, piuttosto stiamo solo applicando il filtro in questo momento.

Esegui il codice utilizzando il tasto F5 o inserirà manualmente il filtro per l'intervallo selezionato.

Quindi ha applicato un filtro ai dati. Adesso vedremo come filtrare i dati.

Esempio n. 1: filtrare i dati utilizzando il filtro automatico

Considera gli stessi dati dell'esempio precedente. Ora dobbiamo filtrare il dipartimento "Finanza" dalla colonna del dipartimento.

Passaggio 1: dopo aver applicato il filtro, il primo argomento è menzionare da quale colonna stiamo filtrando i dati. In questo caso, dobbiamo filtrare i dati dalla colonna Reparto, quindi il numero di colonna se 5.

Codice:

 Sub AutoFilter_Example1 () Intervallo ("A1: E25"). Campo filtro automatico: = 5, End Sub 

Passaggio 2: i criteri 1 non sono altro che ciò che vogliamo filtrare dalla quinta colonna. Quindi dobbiamo filtrare "Finanza".

Codice:

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

Quindi questo è tutto, esegui questo codice manualmente o tramite il tasto F5 filtrerà solo "Finanza" dall'elenco.

Esempio # 2 - Operatore in AutoFilter

Abbiamo visto come filtrare il singolo valore. Adesso vedremo come filtrare più elementi. Assumi insieme a "Finanza" di voler filtrare anche il reparto "Vendite", quindi possiamo farlo utilizzando gli operatori.

Passaggio 1: dopo aver applicato i primi criteri nell'argomento successivo selezionare l'operatore come "xlOr".

Codice:

 Sub AutoFilter_Example2 () Intervallo ("A1: E25"). Campo filtro automatico: = 5, Criteria1: = "Finance", Operatore: = xlOr End Sub 

Passaggio 2: ora nei criteri 2 menzionare il valore come "Vendite".

Codice:

 Sub AutoFilter_Example2 () Intervallo ("A1: E25"). Campo filtro automatico: = 5, Criteria1: = "Finance", Operatore: = xlOr, Criteria2: = "Sales" End Sub 

Step 3: Ok, done run this code using 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 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()       With Range("A1:E25") .AutoFilter Field:=5, Criteria1:="Finance" .AutoFilter Field:=2, Criteria1:=">25000", Operator:=xlAnd, Criteria2:="<40000"       End With End Sub 

This will filter out two columns.

Run this code using the F5 key or you can run manually.

Things to Remember

  • Try different combinations under Operator to get the knowledge of VBA AutoFilter.
  • If you are not sure what to put in try using the macro recorder.
  • If you want to filter out text values then you need to supply them in double-quotes.
  • Use WITH statement to apply more than one column filter.