Sommario
Finora abbiamo esaminato come creare elenchi a discesa in Excel. Oggi mostrerò come creare un elenco a discesa con selezioni multiple in Excel .
Scarica il quaderno di esercizi
Potete scaricare il quaderno di esercizi da qui.
Creare un elenco a discesa con selezione multipla.xlsmProcedure passo-passo per creare un elenco a discesa in Excel con selezioni multiple
Qui abbiamo un set di dati con una colonna Nome del libro che contiene alcuni nomi di libri. L'obiettivo di oggi è creare un elenco a discesa basato su questo set di dati che accetta selezioni multiple. Mostrerò le procedure passo-passo nella sezione seguente.
FASE 1: Creare un elenco a discesa utilizzando la convalida dei dati
Per creare un elenco a discesa con più selezioni, dobbiamo prima creare un elenco a discesa. Esaminiamo le procedure.
- Per prima cosa, selezionare la cella in cui si desidera creare l'elenco a discesa. Ho selezionato Cella D5 .
- Successivamente, andare alla sezione Dati e selezionare Convalida dei dati dal nastro.
- Poi, dal Convalida dei dati selezionare la finestra Elenco in Consentire e scrivere le celle dell'intervallo i cui dati si vogliono aggiungere all'elenco nella sezione Fonte campo.
- In alternativa, è possibile fare clic sulla piccola freccia rivolta verso l'alto nella finestra di dialogo Fonte e selezionare l'intervallo di dati dal foglio di lavoro.
- Infine, vedremo un elenco a discesa creato in Cella D5 .
Letture simili:
- Come creare un elenco a discesa in Excel (indipendente e dipendente)
- Effettuare una selezione multipla da un elenco a discesa in Excel (3 modi)
- Come creare un elenco a discesa dipendente in Excel
- Creare un elenco a discesa in più colonne in Excel (3 modi)
FASE 2: Abilitazione dell'elenco a discesa ad accettare la selezione multipla tramite codice VBA
Abbiamo già creato l'elenco a discesa. Ora è il momento di preparare l'elenco a discesa per le selezioni multiple. Utilizzerò 2 VBA per consentire all'elenco di accettare selezioni multiple. Una accetterà la ripetizione dei dati e un'altra non accetterà la ripetizione dei dati.
Caso 1: Codice VBA per selezioni multiple con ripetizione
In questa sezione, mostrerò il modo in cui creare un elenco a discesa con selezioni multiple, che richiederà una ripetizione di dati.
Esaminiamo le procedure.
- Per prima cosa, premere ALT + F11 per aprire il VBA finestra.
- Quindi, selezionare Progetto Explorer . Inoltre, doppio - clicca sul foglio in cui si desidera svolgere l'attività.
- Contemporaneamente, un Codice si aprirà la finestra.
- Successivamente, scrivete il seguente codice in quella finestra.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" ThenTarget.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Nota: Nella parte di codice ( Se Target.Address = "$D$5" Allora ) invece del riferimento alla cella $D$5, scrivete il riferimento alla cella in cui avete creato l'elenco a discesa. - Infine, tornando al foglio di lavoro, saremo in grado di selezionare più elementi nell'elenco a discesa con una ripetizione dello stesso elemento.
Caso 2: Codice VBA per la selezione multipla senza ripetizione
In questa sezione, mostrerò come creare un elenco a discesa con selezioni multiple che non richieda la ripetizione dei dati.
Esaminiamo le procedure.
- Per prima cosa, premere ALT + F11 per aprire il VBA finestra.
- Quindi, selezionare Progetto Explorer . Inoltre, doppio - clicca sul foglio in cui si desidera svolgere l'attività.
- Contemporaneamente, un Codice apparirà la finestra di dialogo.
- Successivamente, digitare il seguente codice nella finestra.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue =Target.Value Se Oldvalue = "" Allora Target.Value = Newvalue Else Se InStr(1, Oldvalue, Newvalue) = 0 Allora Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Nota: Nella parte di codice ( Se Target.Address = "$D$5" Allora ) invece del riferimento alla cella $D$5, scrivete il riferimento alla cella in cui avete creato l'elenco a discesa. - Infine, tornando al foglio di lavoro, saremo in grado di selezionare più elementi nell'elenco a discesa senza ripetere lo stesso elemento.
Conclusione
Con questo metodo è possibile creare in Excel un elenco a discesa con più selezioni. Avete domande? Non esitate a comunicarcele nella sezione dei commenti. Visitate il nostro sito Sito web ExcelWIKI per ulteriori articoli riguardanti Excel .