Come filtrare una colonna utilizzando vba (con esempi)


È possibile utilizzare i seguenti metodi per filtrare per colonna in Excel utilizzando VBA:

Metodo 1: filtra in base al valore di una colonna

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value
End Sub

Questa particolare macro filtrerà l’intervallo A1:C11 per mostrare solo le righe la cui prima colonna è uguale al valore della cella F2 .

Metodo 2: filtra in base a più valori di colonna

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
                                 Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub

Questa particolare macro filtrerà l’intervallo A1:C11 per mostrare solo le righe la cui prima colonna è uguale al valore della cella F2 o F3 .

Metodo 3: Cancella filtri

 SubClearFilters ()
ActiveSheet.AutoFilterMode = False
End Sub

Questa particolare macro cancellerà tutti i filtri dal foglio corrente.

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi.

Esempio 1: filtra in base al valore di una colonna

Supponiamo di avere un set di dati contenente informazioni su vari giocatori di basket e di voler filtrare il set di dati per contenere solo quelle righe il cui valore nella colonna Squadra è uguale ad A:

Per fare ciò possiamo creare la seguente macro:

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value
End Sub

Quando eseguiamo questa macro, il set di dati verrà automaticamente filtrato per contenere solo righe il cui valore nella colonna Team è uguale ad A:

Colonna del filtro VBA in base al valore della cella

Esempio 2: filtro in base a più valori di colonna

Diciamo che vogliamo filtrare il set di dati per contenere solo righe il cui valore nella colonna Team è uguale ad A o C:

Per fare ciò possiamo creare la seguente macro:

 SubFilterRows ()
ActiveSheet.Range(" A1:C11 ").AutoFilter field:=1, Criteria1:=Range(" F2 ").Value, _
                                 Operator:=xlOr, Criteria2:=Range(" F3 ").Value
End Sub

Quando eseguiamo questa macro, il set di dati viene automaticamente filtrato per mostrare solo le righe il cui valore nella colonna Team è uguale ad A o C.

Colonna di filtro VBA basata su più criteri

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 aggiornare le tabelle pivot
VBA: come filtrare le tabelle pivot
VBA: come rimuovere valori duplicati

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *