Vba: come utilizzare il filtro automatico con più criteri
È possibile utilizzare i seguenti metodi per utilizzare il filtro automatico in VBA con più criteri:
Metodo 1: utilizzare il filtro automatico con più criteri in una singola colonna
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Questa particolare macro filtrerà tutte le righe nell’intervallo A1:C11 in cui il valore della prima colonna è uguale a “A” o “C”.
Metodo 2: utilizzare il filtro automatico con più criteri in più colonne
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Questa particolare macro filtrerà l’intervallo A1:C11 per mostrare solo le righe in cui la prima colonna è uguale a “A” e la seconda colonna è uguale a “Guard”.
Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente set di dati in Excel:
Esempio 1: utilizzare il filtro automatico con più criteri in una colonna
Supponiamo di voler filtrare il set di dati per mostrare solo le righe la cui prima colonna è uguale a “A” o “C”.
Per fare ciò possiamo creare la seguente macro:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Tieni presente che il set di dati è stato filtrato per mostrare solo le righe con la prima colonna uguale ad “A” o “C”.
Nota : abbiamo incluso solo due possibili valori nella funzione Array() , ma sentiti libero di includerne quanti desideri.
Esempio 2: utilizzare il filtro automatico con più criteri in più colonne
Supponiamo di voler filtrare il set di dati per mostrare solo le righe in cui il valore della colonna Team è uguale ad A e il valore della colonna Posizione è uguale a Guard.
Per fare ciò possiamo creare la seguente macro:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Ho notato che il set di dati è stato filtrato per mostrare solo le righe in cui il valore nella colonna Team è uguale ad A e il valore nella colonna Position è uguale a Guard.
Nota : qui è possibile trovare la documentazione completa per il metodo VBA AutoFilter .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come filtrare le tabelle pivot
VBA: come cancellare i filtri
VBA: come rimuovere valori duplicati