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 Kutools for Excelè un'opzione pratica


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)
'UpdatebyExtendoffice20221111
    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
    If Target.Value = "" 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

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)
'UpdatebyExtendoffice20221111
    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
    If Target.Value = "" 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

Entrambi i codici VBA sopra non supportano l'eliminazione di parti del contenuto della cella, supportano solo la cancellazione di tutti gli elementi della cella.


Seleziona più elementi dall'elenco a discesa in una cella con Kutools for Excelè un'opzione pratica

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 profilo.
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à.  Clicca per 30 giorni di prova gratuita!
doc advanced combina righe
 
Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni 30 giorni;

I migliori strumenti per la produttività in ufficio

Kutools for 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 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 ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (26)
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.
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.
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
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.
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
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.
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!
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?
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?
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.
Questo commento è stato fatto dal moderatore sul sito
il codice funziona ma viene trasferito su tutte le celle e si moltiplica nelle celle e non consente l'eliminazione, puoi aiutare?
Questo commento è stato fatto dal moderatore sul sito
Quando quero deletar alguma opção ou todas dá erro. Como posso risolutore?
Questo commento è stato fatto dal moderatore sul sito
Ciao! Como puedo usar este codigo para todo un worksheet y no solo para una pestana?
Questo commento è stato fatto dal moderatore sul sito
Ciao Vero, Kutools for ExcelLa funzione Elenco a discesa a selezione multipla di supporta la selezione di più elementi dall'elenco a discesa nell'intero foglio di lavoro o nella cartella di lavoro, è sufficiente specificare l'ambito specificato nella finestra di dialogo Impostazioni elenco a discesa a selezione multipla.
Questo commento è stato fatto dal moderatore sul sito
Come posso farlo per la prima formula che hai fornito :) Grazie in anticipo!
Questo commento è stato fatto dal moderatore sul sito
Buongiorno,
selon le premier exemple tout fonctionne très bien jusqu'à ce que je verrouille la feuille.
quand la feuille est verrouillée, je n'ai plus le choix multiple !
commento faire?
grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
Ciao, mi dispiace per quello. Aggiorneremo la nostra funzione nella prossima versione per evitare questo problema. Grazie per il tuo feedback.
Questo commento è stato fatto dal moderatore sul sito
merci bcp
Mais à quando la nuova versione?
Questo commento è stato fatto dal moderatore sul sito
Ciao, la nuova versione è in fase di pianificazione, poiché la prossima versione aggiornerà più funzionalità, potrebbe volerci un po' di tempo.
Questo commento è stato fatto dal moderatore sul sito
Ciao, abbiamo aggiornato questa versione per te, ma questa è una versione beta, per favore scaricala da questo: https://download.extendoffice.com/downloads/Kutools-for-Excel/beta/26.10/KutoolsforExcelSetup.Inno.exe
In caso di problemi, benvenuto per il tuo feedback.
Questo commento è stato fatto dal moderatore sul sito
grazie,
Je vais la télécharger et saggier.
Bonne journée
Questo commento è stato fatto dal moderatore sul sito
il codice funziona ma non mi permette di eliminare qualcuno può postare il nuovo codice.
Questo commento è stato fatto dal moderatore sul sito
¿Cómo puedo hacer para que el orden en que se coloque el texto, sea tan cuál como yo quiera?

Esempio:
Il mio testo per la lista è:
TRAMITAR ESTE ASUNTO
COORDINATORE
RACCOMANDAZIONE ANALIZARIA

si seleziona:
TRAMITAR ESTE ASUNTO
RACCOMANDAZIONE ANALIZARIA

Mi sembra
ANALIZAR Y RECOMENDAR, TRAMITAR ESTE ASUNTO

o mare, los de abajo me aparecen primero, ma quiero que sea en el orden en que voy seleccionando...
TRAMITAR ESTE ASUNTO, ANALIZAR Y RECOMENDAR.....
Questo commento è stato fatto dal moderatore sul sito
Ciao, Gorgelys, l'elenco a discesa a selezione multipla di Kutools può aiutarti. Gli elementi selezionati saranno nell'ordine desiderato.
Questo commento è stato fatto dal moderatore sul sito
Come posso utilizzare una funzione con una planimetria bloccata?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Macro, prova sotto il codice, supporta la selezione di più elementi nell'elenco a discesa nel foglio protetto.
Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20221111
    Dim xRgVal As Range
    Dim xStrNew As String
    On Error Resume Next  
    xType = 0
    xType = Target.Validation.Type
    If xType <> 3 Then Exit Sub
    If (Target.Count > 1) Then Exit Sub

    If Target.Value = "" 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

E anche Kutools for Excel 26.1 e versioni successive supportano questo lavoro nel foglio protetto.
Non ci sono ancora commenti pubblicati qui

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL