Questo tutorial dimostrerà come utilizzare la convalida dei dati per lavorare con gli elenchi a discesa in Excel utilizzando VBA.
Convalida dati Excel consente di limitare i valori che possono essere immessi in una cella o in un intervallo. Puoi limitare le voci a numeri interi positivi, testo, date e molto altro. In questo tutorial, vedremo come creare un elenco a discesa di convalida dei dati in una cella utilizzando VBA.
Nota: un'alternativa a un elenco a discesa di convalida dei dati è un oggetto ListBox. ListBox possono essere aggiunti ai fogli di lavoro di Excel. I ListBox possono attivare macro che vengono eseguite ogni volta che un valore ListBox viene modificato. I ListBox vengono utilizzati anche nei moduli utente VBA.
Creazione di un elenco a discesa utilizzando VBA
Abbiamo il testo Frutta nella cella A1 e creeremo un elenco a discesa nella cella A2, con cinque voci.
Useremo il metodo Validation.Add e specificheremo che il parametro Type è xlValidateList. Puoi aggiungere gli elementi specifici che desideri nel tuo elenco utilizzando il parametro Formula1.
Il codice seguente creerà un elenco a discesa di convalida dei dati nella cella A2:
123456 | Sottoelenco a discesaVBA()Range("A2"). Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _Formula1: = "Arancia, Mela, Mango, Pera, Pesca"Fine sottotitolo |
Il risultato è:
Popolare un elenco a discesa da un intervallo denominato in VBA
È possibile utilizzare un intervallo denominato contenente gli elementi per popolare un elenco a discesa in VBA. Abbiamo la gamma denominata Animali mostrata di seguito:
Dobbiamo impostare il parametro Formula1 uguale all'intervallo denominato. Il codice seguente creerà un elenco a discesa di convalida dei dati nella cella A7 in base agli elementi nell'intervallo denominato:
123456 | Sottopopola daANamedRange()Range("A7"). Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _Formula1:="=Animali"Fine sottotitolo |
Il risultato è:
Rimozione dell'elenco a discesa
È possibile utilizzare il metodo Validation.Delete per rimuovere l'elenco a discesa dalla cella. Il seguente codice rimuoverà l'elenco a discesa dalla cella A7 nell'esempio sopra:
12345 | Sub RemoveDropDownList()Intervallo ("A7"). Validation.DeleteFine sottotitolo |