Válasszon ki több elemet az Excel legördülő listából – teljes útmutató
Az Excel legördülő listái fantasztikus eszközök az adatok konzisztenciájának és egyszerű bevitelének biztosítására. Alapértelmezés szerint azonban csak egy elem kiválasztására korlátozzák. De mi van akkor, ha több elemet kell kiválasztania ugyanabból a legördülő listából? Ez az átfogó útmutató megvizsgálja azokat a módszereket, amelyek segítségével több kijelölést engedélyezhet az Excel legördülő listáiban, kezelheti a duplikációkat, beállíthat egyéni elválasztókat, és meghatározhatja a listák hatókörét.
- Az ismétlődő elemek engedélyezése
- A meglévő elemek eltávolítása
- Egyéni elválasztó beállítása
- Meghatározott tartomány beállítása
- Végrehajtás védett munkalapon
Több kijelölés engedélyezése a legördülő listában
Ez a szakasz két módszert kínál az Excel legördülő listában történő több kijelölés engedélyezésére.
VBA kód használata
Ha több kijelölést szeretne engedélyezni a legördülő listában, használhatja Visual Basic alkalmazásokhoz (VBA) Excelben. A szkript módosíthatja a legördülő lista viselkedését, hogy feleletválasztós listává tegye. Kérjük, tegye a következőket.
1. lépés: Nyissa meg a Lap (kód) szerkesztőt
- Nyissa meg azt a munkalapot, amely azt a legördülő listát tartalmazza, amelynél engedélyezni kívánja a többszörös kijelölést.
- Kattintson a jobb gombbal a lapfülre, és válassza ki Kód megtekintése a helyi menüből.
2. lépés: VBA kód használata
Most másolja ki a következő VBA-kódot, és illessze be a nyitólap (Kód) ablakba.
VBA-kód: Több kijelölés engedélyezése az Excel legördülő listában.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Set TargetRange = Me.UsedRange ' Users can change target range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
If Not (xValue1 = xValue2 Or _
InStr(1, xValue1, delimiter & xValue2) > 0 Or _
InStr(1, xValue1, xValue2 & delimiter) > 0) Then
Target.Value = xValue1 & delimiter & xValue2
Else
Target.Value = xValue1
End If
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
Eredmény
Amikor visszatér a munkalaphoz, a legördülő lista lehetővé teszi több lehetőség kiválasztását, lásd az alábbi bemutatót:
A fenti VBA kód:
- Az aktuális munkalapon található összes adatellenőrzési legördülő listára vonatkozik, mind a meglévőkre, mind a jövőben létrehozottakra.
- Megakadályozza, hogy ugyanazt az elemet többször válassza ki minden egyes legördülő listából.
- Vesszőt használ a kijelölt elemek elválasztójaként. Egyéb határolójelek használatához kérjük tekintse meg ezt a részt az elválasztó megváltoztatásához.
A Kutools for Excel használata néhány kattintással
Ha nem elégedett a VBA-val, egy egyszerűbb alternatíva Kutools az Excel számára's Többszörös kiválasztás legördülő lista funkció. Ez a felhasználóbarát eszköz leegyszerűsíti a többszörös kijelölés engedélyezését a legördülő listákban, lehetővé téve az elválasztó testreszabását és az ismétlődések könnyű kezelését, hogy megfeleljen az Ön különböző igényeinek.
Után a Kutools for Excel telepítése, Menjen a Kutools lapon válassza ki a lehetőséget Legördülő lista > Többszörös kiválasztás legördülő lista. Ezután a következőképpen kell konfigurálnia.
- Adja meg a legördülő listát tartalmazó tartományt, amelyből több elemet kell kiválasztania.
- Adja meg a kiválasztott elemek elválasztóját a legördülő lista cellájában.
- Kattints OK a beállítások befejezéséhez.
Eredmény
Most, ha a megadott tartományban egy legördülő listát tartalmazó cellára kattint, megjelenik mellette egy listamező. Egyszerűen kattintson az elemek melletti "+" gombra, hogy hozzáadja őket a legördülő cellához, és kattintson a "-" gombra a már nem kívánt elemek eltávolításához. Tekintse meg az alábbi bemutatót:
- Ellenőrizd a Szöveg tördelése elválasztó beillesztése után opciót, ha a kijelölt elemeket függőlegesen szeretné megjeleníteni a cellán belül. Ha a vízszintes listát részesíti előnyben, hagyja bejelöletlenül ezt a lehetőséget.
- Ellenőrizd a Keresés engedélyezése opciót, ha keresősávot szeretne hozzáadni a legördülő listához.
- A funkció alkalmazásához kérjük töltse le és telepítse a Kutools for Excel alkalmazást először.
További műveletek a többszörös kiválasztás legördülő listához
Ez a szakasz azokat a különböző forgatókönyveket gyűjti össze, amelyekre szükség lehet, ha több kijelölést engedélyez az Adatellenőrzés legördülő listában.
Ismétlődő elemek engedélyezése a legördülő listában
Az ismétlődések problémát jelenthetnek, ha egy legördülő listában több kijelölés is engedélyezett. A fenti VBA-kód nem engedélyezi a duplikált elemeket a legördülő listában. Ha meg kell őriznie az ismétlődő elemeket, próbálja ki az ebben a szakaszban található VBA-kódot.
VBA-kód: A duplikációk engedélyezése az adatellenőrzés legördülő listában
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Set TargetRange = Me.UsedRange ' Users can change target range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
Target.Value = xValue1 & delimiter & xValue2
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
Eredmény
Mostantól több elemet is kiválaszthat az aktuális munkalap legördülő listáiból. Ha meg szeretne ismételni egy elemet a legördülő lista cellájában, továbbra is válassza ki az adott elemet a listából. Lásd a képernyőképet:
A meglévő elemek eltávolítása a legördülő listából
Miután több elemet kiválasztott egy legördülő listából, előfordulhat, hogy el kell távolítania egy meglévő elemet a legördülő lista cellájából. Ez a szakasz egy másik VBA-kódot tartalmaz, amely segít a feladat végrehajtásában.
VBA-kód: Távolítsa el a meglévő elemeket a legördülő lista cellájából
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRngDV As Range
Dim TargetRange As Range
Dim oldValue As String
Dim newValue As String
Dim delimiter As String
Dim allValues As Variant
Dim valueExists As Boolean
Dim i As Long
Dim cleanedValue As String
Set TargetRange = Me.UsedRange ' Set your specific range here
delimiter = ", " ' Set your desired delimiter here
If Target.CountLarge > 1 Then Exit Sub
' Check if the change is within the specific range
If Intersect(Target, TargetRange) Is Nothing Then Exit Sub
On Error Resume Next
Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
If xRngDV Is Nothing Or Target.Value = "" Then
' Skip if there's no data validation or if the cell is cleared
Application.EnableEvents = True
Exit Sub
End If
On Error GoTo 0
If Not Intersect(Target, xRngDV) Is Nothing Then
Application.EnableEvents = False
newValue = Target.Value
Application.Undo
oldValue = Target.Value
Target.Value = newValue
' Split the old value by delimiter and check if new value already exists
allValues = Split(oldValue, delimiter)
valueExists = False
For i = LBound(allValues) To UBound(allValues)
If Trim(allValues(i)) = newValue Then
valueExists = True
Exit For
End If
Next i
' Add or remove value based on its existence
If valueExists Then
' Remove the value
cleanedValue = ""
For i = LBound(allValues) To UBound(allValues)
If Trim(allValues(i)) <> newValue Then
If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
cleanedValue = cleanedValue & Trim(allValues(i))
End If
Next i
Target.Value = cleanedValue
Else
' Add the value
If oldValue <> "" Then
Target.Value = oldValue & delimiter & newValue
Else
Target.Value = newValue
End If
End If
Application.EnableEvents = True
End If
End Sub
Eredmény
Ez a VBA-kód lehetővé teszi több elem kiválasztását a legördülő listából, és könnyedén eltávolíthatja a már kiválasztott elemeket. Több elem kiválasztása után, ha el szeretne távolítani egy adott elemet, egyszerűen válassza ki újra a listából.
Egyéni elválasztó beállítása
A fenti VBA-kódokban a határoló vesszőként van beállítva. Ezt a változót bármely preferált karakterre módosíthatja, hogy elválasztóként használja a legördülő listában. A következőképpen teheti meg:
Amint láthatja, a fenti VBA-kódok mindegyike a következő sort tartalmazza:
delimiter = ", "
Csak szükség szerint módosítania kell a vesszőt bármilyen elválasztóra. Ha például pontosvesszővel szeretné elválasztani az elemeket, módosítsa a sort a következőre:
delimiter = "; "
delimiter = vbNewLine
Meghatározott tartomány beállítása
A fenti VBA-kódok az aktuális munkalap összes legördülő listájára vonatkoznak. Ha azt szeretné, hogy a VBA-kódok csak a legördülő listák egy bizonyos tartományára vonatkozzanak, a fenti VBA-kódban a következőképpen adhatja meg a tartományt.
Amint láthatja, a fenti VBA-kódok mindegyike a következő sort tartalmazza:
Set TargetRange = Me.UsedRange
Csak módosítania kell a sort a következőre:
Set TargetRange = Me.Range("C2:C10")
Végrehajtás védett munkalapon
Képzelje el, hogy jelszóval védett egy munkalapot "123", és állítsa a legördülő lista celláit ""kártyafüggetlen" a védelem aktiválása előtt, így biztosítva, hogy a többszörös kijelölés funkció a védelem után is aktív maradjon. A fent említett VBA-kódok azonban ebben az esetben nem működnek, és ez a szakasz egy másik VBA-szkriptet ír le, amelyet kifejezetten a többszörös kijelölésű funkciók kezelésére terveztek védett munkalapon.
VBA-kód: Engedélyezze a többszörös kijelölést a legördülő listában ismétlődések nélkül
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim delimiter As String
Dim TargetRange As Range
Dim isProtected As Boolean
Dim pswd As Variant
Set TargetRange = Me.UsedRange ' Set your specific range here
delimiter = ", " ' Users can change the delimiter here
If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
' Check if sheet is protected
isProtected = Me.ProtectContents
If isProtected Then
' If protected, temporarily unprotect. Adjust or remove the password as needed.
pswd = "yourPassword" ' Change or remove this as needed
Me.Unprotect Password:=pswd
End If
On Error Resume Next
Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then
If isProtected Then Me.Protect Password:=pswd
Exit Sub
End If
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" And xValue2 <> "" Then
If Not (xValue1 = xValue2 Or _
InStr(1, xValue1, delimiter & xValue2) > 0 Or _
InStr(1, xValue1, xValue2 & delimiter) > 0) Then
Target.Value = xValue1 & delimiter & xValue2
Else
Target.Value = xValue1
End If
End If
Application.EnableEvents = True
On Error GoTo 0
' Re-protect the sheet if it was protected
If isProtected Then
Me.Protect Password:=pswd
End If
End Sub
Ha engedélyezi a többszörös kijelölést az Excel legördülő listáiban, nagymértékben növelheti a munkalapok funkcionalitását és rugalmasságát. Akár jól érzi magát a VBA-kódolásban, akár egy egyszerűbb megoldást, például a Kutools-t részesíti előnyben, most már lehetősége van arra, hogy szabványos legördülő listáit dinamikus, többszörösen kiválasztható eszközökké alakítsa. Ezekkel a készségekkel most már dinamikusabb és felhasználóbarátabb Excel-dokumentumokat készíthet. Azok számára, akik szeretnének mélyebbre ásni az Excel képességeit, weboldalunk rengeteg oktatóanyagot kínál. Itt találhat további Excel tippeket és trükköket.
Kapcsolódó cikkek
Automatikus kiegészítés az Excel legördülő lista beírásakor
Ha van egy adatellenőrzési legördülő listája, amelynek nagy értékei vannak, akkor csak a megfelelő megtalálásához kell görgetnie a listában, vagy közvetlenül be kell írnia az egész szót a listamezőbe. Ha van módszer az automatikus kitöltés engedélyezésére, amikor beírja az első betűt a legördülő listába, akkor minden könnyebbé válik. Ez az oktatóanyag bemutatja a probléma megoldásának módszerét.
Hozzon létre legördülő listát az Excel másik munkafüzetéből
Nagyon egyszerű létrehozni egy adatellenőrzési legördülő listát a munkafüzetek munkalapjai között. De ha az adatellenőrzéshez szükséges listaadatokat egy másik munkafüzetben találja meg, mit tenne? Ebben az oktatóanyagban megtudhatja, hogyan hozhat létre részletesen egy legördülő listát az Excel másik munkafüzetéből.
Hozzon létre egy kereshető legördülő listát az Excelben
A sok értéket tartalmazó legördülő lista számára nem könnyű megtalálni a megfelelőt. Korábban bevezettük a legördülő lista automatikus kitöltésének módszerét, amikor az első betűt beírjuk a legördülő mezőbe. Az automatikus kiegészítés funkció mellett kereshetővé is teheti a legördülő listát a munka hatékonyságának növelése érdekében a megfelelő értékek megtalálásához a legördülő listában. A legördülő lista kereshetővé tételéhez próbálkozzon az oktatóanyag módszerével.
Automatikusan kitölti a többi cellát, amikor kiválasztja az értékeket az Excel legördülő listában
Tegyük fel, hogy létrehozott egy legördülő listát a B8: B14 cellatartomány értékei alapján. Bármelyik értéket választva a legördülő listából, azt szeretné, hogy a C8: C14 cellatartomány megfelelő értékei automatikusan feltöltődjenek egy kiválasztott cellában. A probléma megoldásához az oktatóanyagban szereplő módszerek kedveznek.
A legjobb irodai hatékonyságnövelő eszközök
Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz. Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...
Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját
- Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
- Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
- 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
Tartalomjegyzék
- Több kijelölés engedélyezése
- VBA kód használata
- A Kutools for Excel használata néhány kattintással
- További műveletek
- Az ismétlődő elemek engedélyezése
- A meglévő elemek eltávolítása
- Egyéni elválasztó beállítása
- Meghatározott tartomány beállítása
- Végrehajtás védett munkalapon
- Kapcsolódó cikkek
- A legjobb irodai termelékenységi eszközök
- Hozzászólások