Cum se creează o listă derulantă cu mai multe selecții sau valori în Excel?
În mod implicit, puteți selecta doar un articol dintr-o listă derulantă de validare a datelor în Excel. Cum puteți face selecții multiple în lista derulantă, așa cum se arată mai jos în gif? Metodele din acest articol vă pot ajuta să rezolvați problema.
Mai multe tutoriale pentru lista derulantă ...
Creați o listă derulantă cu mai multe selecții cu cod VBA
Această secțiune oferă două coduri VBA pentru a vă ajuta să faceți selecții multiple în listele derulante dintr-o foaie de lucru. Cele două coduri VBA pot realiza:
Puteți aplica unul dintre următoarele coduri VBA pentru a face selecții multiple într-o listă derulantă într-o foaie de lucru în Excel. Vă rugăm să faceți după cum urmează.
1. Deschideți foaia de lucru care conține listele drop-down de validare a datelor din care doriți să faceți selecții multiple. Faceți clic dreapta pe fila foii și selectați Afișați codul din meniul contextual.
2. În Microsoft Visual Basic pentru aplicații fereastră, copiați codul VBA de mai jos în fereastra codului. Vedeți captura de ecran:
Cod VBA 1: permiteți selecții multiple într-o listă derulantă fără duplicate
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. apasă pe Alt + Q tastele pentru a închide Microsoft Visual Basic pentru aplicații fereastră.
Acum puteți selecta mai multe articole din lista derulantă din foaia de lucru curentă.
Să presupunem că ați selectat accidental un element și trebuie să îl eliminați fără a șterge întreaga celulă și a începe de la capăt. Următorul cod VBA 2 vă poate face o favoare.
Cod VBA 2: permiteți selecții multiple într-o listă derulantă fără duplicate (ștergeți elementele existente selectând-o din nou)
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
notițe:
Creați cu ușurință o listă derulantă cu mai multe selecții cu un instrument uimitor
Aici vă recomandăm cu căldură Listă derulantă cu selectare multiplă caracteristică a Kutools pentru Excel Pentru dumneavoastră. Cu această caracteristică, puteți selecta cu ușurință mai multe articole din lista derulantă într-un interval specificat, foaia de lucru curentă, registrul de lucru curent sau toate registrele de lucru deschise după cum aveți nevoie.
Înainte de a aplica Kutools pentru Excel, Vă rugăm să descărcați-l și instalați-l mai întâi.
1. clic Kutools > Lista verticală > Listă derulantă cu selectare multiplă > Setări. Vedeți captura de ecran:
2. În Setări listă derulantă cu selectare multiplă casetă de dialog, vă rugăm să configurați după cum urmează.
- 2.1) Specificați domeniul de aplicare în Aplica pentru secțiune. În acest caz, selectez Foaia de lucru curentă de la Domeniul de aplicare specificat lista verticală;
- 2.2) În Direcția textului secțiune, selectați o direcție de text în funcție de nevoile dvs.;
- 2.3) În Separator caseta, introduceți un delimitator pe care îl veți folosi pentru a separa valorile multiple;
- 2.4) Verificați Nu adăugați duplicate cutie în Opţiuni secțiune dacă nu doriți să faceți duplicate în celulele listei derulante;
- 2.5) Faceți clic pe OK buton. Vedeți captura de ecran:
3. Vă rugăm să faceți clic pe Kutools > Lista verticală > Listă derulantă cu selectare multiplă pentru a activa caracteristica.
Acum puteți selecta mai multe articole din lista derulantă din foaia de lucru curentă sau orice domeniu pe care l-ați specificat la pasul 2.
Dacă doriți să aveți o încercare gratuită (30-zi) a acestei utilitati, vă rugăm să faceți clic pentru a-l descărca, și apoi mergeți pentru a aplica operația conform pașilor de mai sus.
Legate de articole:
Completați automat când tastați în lista verticală Excel
Dacă aveți o listă derulantă de validare a datelor cu valori mari, trebuie să derulați în jos în listă doar pentru a o găsi pe cea potrivită sau să tastați întregul cuvânt direct în caseta de listă. Dacă există o metodă pentru a permite completarea automată la introducerea primei litere din lista derulantă, totul va deveni mai ușor. Acest tutorial oferă metoda de rezolvare a problemei.
Creați o listă verticală dintr-un alt registru de lucru în Excel
Este destul de ușor să creați o listă verticală de validare a datelor printre foile de lucru dintr-un registru de lucru. Dar dacă datele listei de care aveți nevoie pentru validarea datelor se află într-un alt registru de lucru, ce ați face? În acest tutorial, veți afla cum să creați o listă de eliminare dintr-un alt registru de lucru în Excel în detalii.
Creați o listă drop-down căutabilă în Excel
Pentru o listă verticală cu numeroase valori, găsirea unuia corect nu este o lucrare ușoară. Anterior, am introdus o metodă de completare automată a listei derulante atunci când introduceți prima literă în caseta derulantă. Pe lângă funcția de completare automată, puteți face ca lista derulantă să poată fi căutată pentru îmbunătățirea eficienței de lucru în găsirea valorilor corespunzătoare în lista derulantă. Pentru ca lista derulantă să poată fi căutată, încercați metoda din acest tutorial.
Completați automat alte celule atunci când selectați valorile din lista verticală Excel
Să presupunem că ați creat o listă derulantă pe baza valorilor din intervalul de celule B8: B14. Când selectați orice valoare din lista derulantă, doriți ca valorile corespunzătoare din intervalul de celule C8: C14 să fie populate automat într-o celulă selectată. Pentru rezolvarea problemei, metodele din acest tutorial vă vor face o favoare.
Cele mai bune instrumente de productivitate Office
Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%
- reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
- Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
- Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
- Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
- Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
- Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
- Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
- Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
- Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
































