Come creare un elenco a discesa con più selezioni o valori in Excel?
Per impostazione predefinita, puoi selezionare solo un elemento in un elenco a discesa di convalida dei dati in Excel. Come puoi effettuare selezioni multiple nell'elenco a discesa come mostrato nella gif di seguito? I metodi in questo articolo possono aiutarti a risolvere il problema.
Più tutorial per l'elenco a discesa ...
Crea un elenco a discesa con più selezioni con codice VBA
Questa sezione fornisce due codici VBA per aiutarti a effettuare selezioni multiple negli elenchi a discesa in un foglio di lavoro. I due codici VBA possono ottenere:
È possibile applicare uno dei seguenti codici VBA per effettuare selezioni multiple in un elenco a discesa in un foglio di lavoro in Excel. Si prega di fare come segue.
1. Aprire il foglio di lavoro contiene gli elenchi a discesa di convalida dei dati da cui si desidera effettuare selezioni multiple. Fare clic con il pulsante destro del mouse sulla scheda del foglio e selezionare Visualizza codice dal menu di scelta rapida.
2. Nel Microsoft Visual Basic, Applications Edition finestra, copia il codice VBA sottostante nella finestra del codice. Vedi screenshot:
Codice VBA 1: consente selezioni multiple in un elenco a discesa senza duplicati
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2019/11/13
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
If Target.Count > 1 Then Exit Sub
On Error Resume Next
Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
If Not Application.Intersect(Target, xRng) Is Nothing Then
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or _
InStr(1, xValue1, ", " & xValue2) Or _
InStr(1, xValue1, xValue2 & ",") Then
Target.Value = xValue1
Else
Target.Value = xValue1 & ", " & xValue2
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
3. premi il altro + Q i tasti per chiudere il file Microsoft Visual Basic, Applications Edition finestra.
Ora puoi selezionare più elementi dall'elenco a discesa nel foglio di lavoro corrente.
Supponiamo che tu abbia selezionato un elemento accidentalmente e devi rimuoverlo senza cancellare l'intera cella e ricominciare da capo. Il seguente codice VBA 2 può farti un favore.
Codice VBA 2: consenti selezioni multiple in un elenco a discesa senza duplicati (elimina gli elementi esistenti selezionandolo di nuovo)
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2023/01/11
'Updated by Ken Gardner 2022/07/11
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim semiColonCnt As Integer
Dim xType As Integer
If Target.Count > 1 Then Exit Sub
On Error Resume Next
xType = 0
xType = Target.Validation.Type
If xType = 3 Then
Application.ScreenUpdating = False
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or xValue1 = xValue2 & ";" Or xValue1 = xValue2 & "; " Then ' leave the value if only one in list
xValue1 = Replace(xValue1, "; ", "")
xValue1 = Replace(xValue1, ";", "")
Target.Value = xValue1
ElseIf InStr(1, xValue1, "; " & xValue2) Then
xValue1 = Replace(xValue1, xValue2, "") ' removes existing value from the list on repeat selection
Target.Value = xValue1
ElseIf InStr(1, xValue1, xValue2 & ";") Then
xValue1 = Replace(xValue1, xValue2, "")
Target.Value = xValue1
Else
Target.Value = xValue1 & "; " & xValue2
End If
Target.Value = Replace(Target.Value, ";;", ";")
Target.Value = Replace(Target.Value, "; ;", ";")
If Target.Value <> "" Then
If Right(Target.Value, 2) = "; " Then
Target.Value = Left(Target.Value, Len(Target.Value) - 2)
End If
End If
If InStr(1, Target.Value, "; ") = 1 Then ' check for ; as first character and remove it
Target.Value = Replace(Target.Value, "; ", "", 1, 1)
End If
If InStr(1, Target.Value, ";") = 1 Then
Target.Value = Replace(Target.Value, ";", "", 1, 1)
End If
semiColonCnt = 0
For i = 1 To Len(Target.Value)
If InStr(i, Target.Value, ";") Then
semiColonCnt = semiColonCnt + 1
End If
Next i
If semiColonCnt = 1 Then ' remove ; if last character
Target.Value = Replace(Target.Value, "; ", "")
Target.Value = Replace(Target.Value, ";", "")
End If
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
Note:
Crea facilmente un elenco a discesa con più selezioni con uno strumento straordinario
Qui consigliamo vivamente il Elenco a discesa a selezione multipla caratteristica di Kutools for Excel per te. Con questa funzione, puoi selezionare facilmente più elementi dall'elenco a discesa in un intervallo specificato, foglio di lavoro corrente, cartella di lavoro corrente o tutte le cartelle di lavoro aperte di cui hai bisogno.
Prima di applicare Kutools for Excel, Per favore scaricalo e installalo prima.
1. Clic Kutools > Menu `A tendina > Elenco a discesa a selezione multipla > Impostazioni. Visualizza gli screenshot:
2. Nel Impostazioni elenco a discesa a selezione multipla finestra di dialogo, configurare come segue.
- 2.1) Specificare l'ambito di applicazione nel file Applica a sezione. In questo caso, seleziono Foglio di lavoro corrente dal Ambito specificato menu `A tendina;
- 2.2) nel Direzione del testo sezione, seleziona una direzione del testo in base alle tue esigenze;
- 2.3) nel Separatore casella, inserisci un delimitatore che utilizzerai per separare i valori multipli;
- 2.4) Controllare il file Non aggiungere duplicati casella nella Opzioni sezione se non vuoi creare duplicati nelle celle dell'elenco a discesa;
- 2.5) Fare clic su OK pulsante. Vedi screenshot:
3. Fare clic su Kutools > Menu `A tendina > Elenco a discesa a selezione multipla per abilitare la funzione.
Ora puoi selezionare più elementi dall'elenco a discesa nel foglio di lavoro corrente o da qualsiasi ambito specificato nel passaggio 2.
Se vuoi avere una prova gratuita (30-day) di questa utilità, fare clic per scaricarlo, quindi andare ad applicare l'operazione secondo i passaggi precedenti.
Articoli correlati:
Completamento automatico durante la digitazione nell'elenco a discesa di Excel
Se si dispone di un elenco a discesa di convalida dei dati con valori di grandi dimensioni, è necessario scorrere l'elenco solo per trovare quello corretto o digitare direttamente l'intera parola nella casella di riepilogo. Se esiste un metodo per consentire il completamento automatico quando si digita la prima lettera nell'elenco a discesa, tutto diventerà più semplice. Questo tutorial fornisce il metodo per risolvere il problema.
Crea un elenco a discesa da un'altra cartella di lavoro in Excel
È abbastanza facile creare un elenco a discesa di convalida dei dati tra i fogli di lavoro all'interno di una cartella di lavoro. Ma se i dati dell'elenco necessari per la convalida dei dati si trovano in un'altra cartella di lavoro, cosa faresti? In questo tutorial imparerai come creare un elenco a discesa da un'altra cartella di lavoro in Excel in dettaglio.
Crea un elenco a discesa ricercabile in Excel
Per un elenco a discesa con numerosi valori, trovarne uno corretto non è un lavoro facile. In precedenza abbiamo introdotto un metodo di completamento automatico dell'elenco a discesa quando si immette la prima lettera nella casella a discesa. Oltre alla funzione di completamento automatico, è anche possibile rendere ricercabile l'elenco a discesa per migliorare l'efficienza lavorativa nel trovare i valori corretti nell'elenco a discesa. Per rendere ricercabile l'elenco a discesa, prova il metodo in questo tutorial.
Compilare automaticamente altre celle quando si selezionano i valori nell'elenco a discesa di Excel
Supponiamo che tu abbia creato un elenco a discesa basato sui valori nell'intervallo di celle B8: B14. Quando si seleziona un valore nell'elenco a discesa, si desidera che i valori corrispondenti nell'intervallo di celle C8: C14 vengano inseriti automaticamente in una cella selezionata. Per risolvere il problema, i metodi in questo tutorial ti faranno un favore.
I migliori strumenti per la produttività in ufficio
Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%
- Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
- Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
- Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
- Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
- Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
- Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
- Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
- Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
- Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
- Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
































