Note: The other languages of the website are Google-translated. Back to English

Come selezionare più elementi dall'elenco a discesa in una cella in Excel?

L'elenco a discesa viene spesso utilizzato nel lavoro quotidiano di Excel. Per impostazione predefinita, è possibile selezionare un solo elemento in un elenco a discesa. Ma in alcuni momenti, potrebbe essere necessario selezionare più elementi dall'elenco a discesa in una singola cella come mostrato nell'immagine sottostante. Come puoi gestirlo in Excel?

doc seleziona più elementi dall'elenco a discesa 1 doc freccia destra doc seleziona più elementi dall'elenco a discesa 2

Seleziona più elementi dall'elenco a discesa in una cella con VBA

Seleziona più elementi dall'elenco a discesa in una cella con la pratica opzione di Kutools per Excel


Seleziona più elementi dall'elenco a discesa in una cella con VBA

Ecco alcuni VBA che possono farti un favore nel risolvere questo lavoro.

Seleziona gli elementi duplicati dall'elenco a discesa in una cella

1. Dopo aver creato un elenco a discesa, fare clic con il pulsante destro del mouse sulla scheda del foglio per selezionare Visualizza codice dal menu di scelta rapida.
doc seleziona più elementi dall'elenco a discesa 3

2. Quindi in Microsoft Visual Basic, Applications Edition finestra, copia e incolla sotto il codice nello script vuoto.

VBA: seleziona più elementi dall'elenco a discesa in una cella

Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20210409
    Dim xRgVal As Range
    Dim xStrNew As String
    On Error Resume Next
    Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
    If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
    If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    xStrNew = Target.Value
    Application.Undo
    If xStrNew = Target.Value Then
    Else
    xStrNew = xStrNew & " " & Target.Value
    Target.Value = xStrNew
    End If
    Application.EnableEvents = True
End Sub

doc seleziona più elementi dall'elenco a discesa 4

3. Salvare il codice e chiudere la finestra per tornare all'elenco a discesa. Ora puoi selezionare più elementi dall'elenco a discesa.

Nota:

1. Con il VBA, separa gli elementi per spazio, è possibile modificare xStrNew = xStrNew & "" & Target.Value ad altri per cambiare il delimitatore di cui hai bisogno. Per esempio, xStrNew = xStrNew & "," & Target.Value separerà gli elementi con virgole.

2. Questo codice VBA funziona per tutti gli elenchi a discesa nel foglio.

Seleziona più elementi dall'elenco a discesa in una cella senza ripetere

Se desideri solo selezionare elementi unici dall'elenco a discesa a una cella, puoi ripetere i passaggi precedenti e utilizzare il codice sottostante.

VBA : Seleziona più elementi dall'elenco a discesa in una cella senza ripetere

Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20180510
    Dim I As Integer
    Dim xRgVal As Range
    Dim xStrNew As String
    Dim xStrOld As String
    Dim xFlag As Boolean
    Dim xArr
    On Error Resume Next
    Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
    If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
    If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    xFlag = True
    xStrNew = " " & Target.Value & " "
    Application.Undo
    xStrOld = Target.Value
    If InStr(1, xStrOld, xStrNew) = 0 Then
        xStrNew = xStrNew & xStrOld & " "
    Else
        xStrNew = xStrOld
    End If
    Target.Value = xStrNew
    Application.EnableEvents = True
End Sub

Seleziona più elementi dall'elenco a discesa in una cella con la pratica opzione di Kutools per Excel

Se non hai familiarità con il codice VBA, puoi farlo installazione gratuita uno strumento utile - Kutools for Excel, che contiene un gruppo di utilità sull'elenco a discesa e c'è un'opzione Elenco a discesa a selezione multipla può aiutarti a selezionare facilmente più elementi dall'elenco a discesa in una cella.

Dopo aver creato l'elenco a discesa, selezionare le celle dell'elenco a discesa e fare clic su Kutools > Menu `A tendina > Elenco a discesa a selezione multipla per abilitare questa utilità.
doc kutools multi select elenco a discesa 1

Quindi le celle dell'elenco a discesa selezionato possono essere selezionate più elementi nella cella.

Se si utilizza questa opzione per la prima volta, è possibile specificare le impostazioni di questa utilità di cui hai bisogno prima di applicare questa utilità.

Clicchi Kutools > Menu `A tendina > la freccia accanto Elenco a discesa a selezione multipla > Impostazioni.
doc kutools multi select elenco a discesa 2

Quindi nel Impostazioni elenco a discesa a selezione multipla dialogo, puoi

1) Specificare l'ambito di applicazione di cui hai bisogno;

2) Specificare la direzione del posizionamento degli oggetti;

3) Specificare il separatore tra gli elementi;

4) Specificare se non aggiungere duplicati e rimuovere gli elementi duplicati.

Clicchi Ok e fare clic su Kutools > Menu `A tendina > Elenco a discesa a selezione multipla per avere effetto.

Consiglio: Per applicare il Elenco a discesa a selezione multipla utilità, è necessario install all'inizio. Se desideri creare un elenco a discesa con più livelli, l'utilità di seguito potrebbe aiutarti.

Crea facilmente un elenco a discesa dipendente dinamico a 2 o più livelli in Excel

In Excel, creare un elenco a discesa a 2 o più livelli è complesso. Qui il file Elenco a discesa dinamico utilità di Kutools for Excel posso farti un favore. Quello che devi solo fare è ordinare i dati come mostrato nell'esempio, quindi selezionare l'intervallo di dati e l'intervallo di output, quindi lasciarlo all'utilità.  Fai clic per una prova gratuita di 30 giorni!
doc advanced combina righe
 
Kutools per Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni.

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-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

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 centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (14)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Dopo aver aggiunto, i dati dal menu a discesa, l'eliminazione non funziona.
sprofondato
Questo commento è stato fatto dal moderatore sul sito
Ho trovato lo stesso problema. Penso di aver trovato un modo per superarlo. Nella parte inferiore del codice vedrai il codice "xStrNew = xStrOld". Invece, fallo dire xStrNew = " "

Per me funziona.
Susan Lynn
Questo commento è stato fatto dal moderatore sul sito
Per caso hai ancora questo codice? Sto cercando di fare quello che hai detto ma il testo è ancora duplicato.
Grazie
CJ
Questo commento è stato fatto dal moderatore sul sito
Mi dispiace ma non lo faccio. Tuttavia, ho appena esaminato il codice sopra e sembra che l'autore abbia modificato il codice con il mio suggerimento.

pubblica il tuo problema nel thread principale di questo articolo.
Susan Lynn
Questo commento è stato fatto dal moderatore sul sito
nel primo codice aggiungi la seguente riga tra la riga 6 e 7 (10-11 nel secondo codice): Se Target.Value = "" Quindi esci da Sub
</div>
Quetzal Chapa
Questo commento è stato fatto dal moderatore sul sito
Ho usato questo "Seleziona più elementi dall'elenco a discesa in una cella senza ripetere"
Questo è quello che è successo
1. Le selezioni multiple avvengono senza problemi.
2. Il problema è quando provo a modificare e rimuovere un'opzione. Non c'è modo per me di rimuovere un'opzione. continua a moltiplicarsi.
Madhu
Questo commento è stato fatto dal moderatore sul sito
Come applicheresti questa funzionalità ma facendo in modo che non ci siano valori ridondanti? Qualsiasi aiuto sarebbe apprezzato!
John
Questo commento è stato fatto dal moderatore sul sito
Se creo un foglio con un elenco a discesa utilizzando le caselle di controllo, c'è un modo per condividere questa cartella di lavoro con questa funzione delle caselle di controllo?
Karim Abdel Razek
Questo commento è stato fatto dal moderatore sul sito
Sto anche scoprendo che dopo aver selezionato più elementi utilizzando il codice VBA aggiornato, non riesco ancora a cancellare la cella, continua a moltiplicarsi.
Qualcuno ha già una soluzione per questo?
arrugginito
Questo commento è stato fatto dal moderatore sul sito
Ciao, Rusty, il codice che ho aggiornato per renderlo più stabile. Ma poiché la cella è in convalida dei dati, lo spazio vuoto è fuori dalla convalida dei dati, il codice non può risolvere questo problema.
Soleggiato
Questo commento è stato fatto dal moderatore sul sito
Quando quero deletar alguma opção ou todas dá erro. Como posso risolutore?
</div>
Flavia Singh
Questo commento è stato fatto dal moderatore sul sito
Ciao! Como puedo usar este codigo para todo un worksheet y no solo para una pestana?
</div>
Vero
Questo commento è stato fatto dal moderatore sul sito
Ciao, Vero, Kutools for Excel's La funzione Elenco a discesa multi-selezione supporta la selezione di più elementi dall'elenco a discesa nell'intero foglio di lavoro o nella cartella di lavoro, basta specificare l'ambito specificato nella finestra di dialogo Impostazioni elenco a discesa multi-selezione.
Soleggiato
Questo commento è stato fatto dal moderatore sul sito
Come posso farlo per la prima formula che hai fornito :) Grazie in anticipo!
Vero
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0  Personaggi
Posizioni suggerite