In VBA, puoi creare Filtro automatico per filtrare un intervallo di celle o una tabella Excel. In questo tutorial imparerai come creare Filtro automatico per una o più colonne e per più condizioni.
Se vuoi imparare come utilizzare un filtro avanzato in VBA, fai clic qui: Filtro avanzato VBA
Creazione di filtri automatici in VBA
Per prima cosa, vedrai come creare semplicemente Filtro automatico in un intervallo, in modo che un utente possa filtrare i dati. I dati che useremo negli esempi sono nell'immagine 1:
Immagine 1. Dati per esempi di filtro automatico
Ecco il codice per la creazione Filtro automatico:
1 | Foglio1.Intervallo("A1:E1").Filtro automatico |
Per abilitare Filtro automatico, dobbiamo specificare l'intestazione dell'intervallo, nel nostro caso A1: E1, e usare il Filtro automatico metodo dell'oggetto Gamma. Di conseguenza, la nostra gamma di dati ha filtri attivati:
Immagine 2. Filtro automatico abilitato per i dati
Filtro automatico con parametri di campo e criteri
VBA consente inoltre di filtrare automaticamente un determinato campo con determinati valori.
Per fare questo, devi usare i parametri Campo e Criteri1 del metodo Filtro automatico. In questo esempio, vogliamo filtrare la terza colonna (Prodotto) per Prodotto A soltanto. Ecco il codice:
12 | Foglio1.Intervallo("A1:E1").Campo filtro automatico:=3, _Criteri 1: = "Prodotto A" |
Nel Campo parametro, è possibile impostare il numero della colonna nell'intervallo (non in Excel), mentre in Criteri1 puoi inserire il valore che vuoi filtrare. Dopo aver eseguito il codice, la nostra tabella si presenta così:
Immagine 3. Filtro automatico con campo e criteri
Come puoi vedere, solo le righe con Prodotto A nella terza colonna sono visualizzati nell'intervallo di dati.
Filtro automatico con valori di campo e criteri multipli
Se vuoi filtrare un campo con più valori, devi usare il parametro Operatore del Filtro automatico metodo. Per filtrare più valori, è necessario impostare Operatore a xlFilterValues e anche per mettere tutti i valori di Criteri in un array. In questo esempio, filtriamo il Prodotto colonna per Prodotto A e Prodotto B. Ecco l'esempio di codice:
123 | Foglio1.Intervallo("A1:E1").Campo filtro automatico:=3, _Criteri1:=Array("Prodotto A", "Prodotto B"), _Operatore:=xlFilterValues |
Quando eseguiamo il codice, otteniamo solo righe con Prodotto A e Prodotto B, come puoi vedere nell'immagine 4:
Immagine 4. Filtro automatico con più valori di criteri
Intervallo di dati del filtro automatico con criteri multipli
Se vuoi filtrare un campo con più criteri, devi usare Criteri1 e Criteri2 parametri, ma anche il Operatore xlAnd.
Nel prossimo esempio, filtreremo la prima colonna (Data) per le date di dicembre 2022. Pertanto, abbiamo due criteri: una data maggiore del 01/12/18 e una data inferiore al 31/12/18. Questo è il codice:
1234 | Foglio1.Intervallo("A1:E1").Campo filtro automatico:=1, _Criteri1:=">=12/01/2018", _Operatore:=xlAnd, _Criteri 2:="<=131/1/2018" |
Quando eseguiamo il codice, puoi vedere che solo le date di dicembre vengono visualizzate nell'intervallo di dati:
Immagine 5. Filtro automatico con più criteri per il campo
I valori dei parametri dell'operatore del metodo AutoFilter
Nella tabella successiva. puoi vedere tutti i possibili valori di Operatore parametro del metodo AutoFilter e le loro descrizioni:
Operatore | Descrizione |
xlAnd | Include più criteri: Criteri 1 e Criteri 2 |
xlOr | Include uno dei criteri multipli - Criterio1 o Criterio 2 |
xlTop10Items | Filtra un certo numero di valori classificati più alti (numero specificato in Criteri1) |
xlBottom10Articoli | Filtra un certo numero di valori classificati più bassi (numero specificato in Criteri1) |
xlTop10Percent | Filtra una certa percentuale dei valori classificati più alti (% specificata in Criteri1) |
xlBottom10Percent | Filtra una certa percentuale di valori classificati più bassi (% specificata in Criteri1) |
xlFilterValues | Include più valori di criteri con Array |
xlFilterCellColor | Filtra le celle per i colori |
xlFilterFontColor | Filtra le celle per i colori dei caratteri |
xlFilterIcon | Icone filtri |
xlFilterDynamic | Filtra i valori dinamici |