Selecteer meerdere items in de vervolgkeuzelijst van Excel - volledige gids
Excel-vervolgkeuzelijsten zijn een fantastisch hulpmiddel om de consistentie van gegevens en het gemak van invoer te garanderen. Standaard beperken ze u echter tot het selecteren van slechts één item. Maar wat als u meerdere items uit dezelfde vervolgkeuzelijst moet selecteren? Deze uitgebreide handleiding onderzoekt methoden om meerdere selecties in Excel-vervolgkeuzelijsten in te schakelen, duplicaten te beheren, aangepaste scheidingstekens in te stellen en de reikwijdte van deze lijsten te definiëren.
- Dubbele items toestaan
- Verwijder eventuele bestaande items
- Een aangepast scheidingsteken instellen
- Een gespecificeerd bereik instellen
- Uitvoeren in een beveiligd werkblad
Meerdere selecties inschakelen in vervolgkeuzelijst
In deze sectie vindt u twee methoden waarmee u meerdere selecties in de vervolgkeuzelijst in Excel kunt inschakelen.
VBA-code gebruiken
Om meerdere selecties in de vervolgkeuzelijst toe te staan, kunt u gebruiken Visual Basic voor toepassingen (VBA) in Excel. Het script kan het gedrag van een vervolgkeuzelijst wijzigen om er een meerkeuzelijst van te maken. Ga als volgt te werk.
Stap 1: Open de Spreadsheet-editor (code).
- Open het werkblad met de vervolgkeuzelijst waarvoor u meervoudige selectie wilt inschakelen.
- Klik met de rechtermuisknop op het bladtabblad en selecteer Bekijk code vanuit het contextmenu.
Stap 2: Gebruik VBA-code
Kopieer nu de volgende VBA-code en plak deze in het openingsblad (code) venster.
VBA-code: schakel meerdere selecties in de vervolgkeuzelijst van Excel in.
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
Resultaat
Wanneer u terugkeert naar het werkblad, kunt u in de vervolgkeuzelijst meerdere opties kiezen, zie de demo hieronder:
De bovenstaande VBA-code:
- Is van toepassing op alle vervolgkeuzelijsten voor gegevensvalidatie in het huidige werkblad, zowel bestaande als in de toekomst gemaakte.
- Voorkomt dat u hetzelfde item meerdere keren in elke vervolgkeuzelijst kunt kiezen.
- Gebruikt een komma als scheidingsteken voor de geselecteerde items. Als u andere scheidingstekens wilt gebruiken, alstublieft bekijk dit gedeelte om het scheidingsteken te wijzigen.
Kutools voor Excel gebruiken met een paar klikken
Als u niet vertrouwd bent met VBA, is er een eenvoudiger alternatief Kutools for Excel's Meervoudig selecteren vervolgkeuzelijst functie. Deze gebruiksvriendelijke tool vereenvoudigt het inschakelen van meerdere selecties in vervolgkeuzelijsten, zodat u het scheidingsteken kunt aanpassen en duplicaten moeiteloos kunt beheren om aan uw verschillende behoeften te voldoen.
Na Kutools voor Excel installeren, Ga naar het Kutools tab, selecteer Keuzelijst > Meervoudig selecteren vervolgkeuzelijst. Vervolgens moet u als volgt configureren.
- Geef het bereik op met de vervolgkeuzelijst waaruit u meerdere items moet selecteren.
- Geef het scheidingsteken op voor de geselecteerde items in de vervolgkeuzelijstcel.
- Klik OK om de instellingen te voltooien.
Resultaat
Wanneer u nu op een cel met een vervolgkeuzelijst in het opgegeven bereik klikt, verschijnt er een keuzelijst ernaast. Klik eenvoudig op de knop "+" naast de items om ze aan de vervolgkeuzelijst toe te voegen, en klik op de knop "-" om alle items te verwijderen die u niet meer nodig heeft. Zie de demo hieronder:
- Controleer de Tekst laten omlopen na het invoegen van een scheidingsteken optie als u de geselecteerde items verticaal in de cel wilt weergeven. Als u de voorkeur geeft aan een horizontale vermelding, laat deze optie dan uitgeschakeld.
- Controleer de Schakel zoeken in optie als u een zoekbalk aan uw vervolgkeuzelijst wilt toevoegen.
- Om deze functie toe te passen, alstublieft download en installeer Kutools voor Excel kopen.
Meer bewerkingen voor vervolgkeuzelijst met meerdere selecties
In deze sectie worden de verschillende scenario's verzameld die nodig kunnen zijn bij het inschakelen van meerdere selecties in de vervolgkeuzelijst Gegevensvalidatie.
Dubbele items in de vervolgkeuzelijst toestaan
Duplicaten kunnen een probleem zijn wanneer meerdere selecties zijn toegestaan in een vervolgkeuzelijst. De bovenstaande VBA-code staat geen dubbele items in de vervolgkeuzelijst toe. Als u dubbele items wilt behouden, probeer dan de VBA-code in deze sectie.
VBA-code: duplicaten toestaan in de vervolgkeuzelijst voor gegevensvalidatie
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
Resultaat
Nu kunt u meerdere items selecteren uit de vervolgkeuzelijsten in het huidige werkblad. Om een item in een vervolgkeuzelijstcel te herhalen, blijft u dat item in de lijst selecteren. Zie schermafbeelding:
Verwijder alle bestaande items uit de vervolgkeuzelijst
Nadat u meerdere items uit een vervolgkeuzelijst hebt geselecteerd, moet u soms een bestaand item uit de vervolgkeuzelijstcel verwijderen. In deze sectie vindt u nog een stukje VBA-code om u te helpen deze taak te volbrengen.
VBA-code: verwijder alle bestaande items uit de vervolgkeuzelijstcel
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
Resultaat
Met deze VBA-code kunt u meerdere items uit een vervolgkeuzelijst selecteren en eenvoudig elk item verwijderen dat u al hebt gekozen. Nadat u meerdere items hebt geselecteerd en u een specifiek item wilt verwijderen, selecteert u het eenvoudig opnieuw in de lijst.
Een aangepast scheidingsteken instellen
Het scheidingsteken is ingesteld als komma in de bovenstaande VBA-codes. U kunt deze variabele wijzigen in elk gewenst teken dat u wilt gebruiken als scheidingsteken voor de selecties in de vervolgkeuzelijst. Hier ziet u hoe u het kunt doen:
Zoals je kunt zien, hebben de bovenstaande VBA-codes allemaal de volgende regel:
delimiter = ", "
U hoeft alleen maar de komma naar elk gewenst scheidingsteken te wijzigen. Als u de items bijvoorbeeld wilt scheiden met een puntkomma, wijzigt u de regel in:
delimiter = "; "
delimiter = vbNewLine
Een gespecificeerd bereik instellen
De bovenstaande VBA-codes zijn van toepassing op alle vervolgkeuzelijsten in het huidige werkblad. Als u wilt dat de VBA-codes alleen van toepassing zijn op een bepaald bereik van vervolgkeuzelijsten, kunt u het bereik in de bovenstaande VBA-code als volgt opgeven.
Zoals je kunt zien, hebben de bovenstaande VBA-codes allemaal de volgende regel:
Set TargetRange = Me.UsedRange
U hoeft alleen maar de regel te wijzigen in:
Set TargetRange = Me.Range("C2:C10")
Uitvoeren in een beveiligd werkblad
Stel je voor dat je een werkblad hebt beveiligd met het wachtwoord "123" en stel de cellen van de vervolgkeuzelijst in op "Ontgrendeld" voordat de beveiliging wordt geactiveerd, waardoor wordt verzekerd dat de multi-select-functie actief blijft na de beveiliging. De hierboven genoemde VBA-codes kunnen in dit geval echter niet werken, en deze sectie beschrijft een ander VBA-script dat specifiek is ontworpen om multi-select-functionaliteit af te handelen. in een beveiligd werkblad.
VBA-code: schakel meervoudige selectie in de vervolgkeuzelijst in zonder duplicaten
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
Door meerdere selecties in Excel-vervolgkeuzelijsten in te schakelen, kunt u de functionaliteit en flexibiliteit van uw werkbladen aanzienlijk verbeteren. Of u nu vertrouwd bent met VBA-codering of de voorkeur geeft aan een eenvoudigere oplossing zoals Kutools, u heeft nu de mogelijkheid om uw standaard vervolgkeuzelijsten om te zetten in dynamische tools met meerdere selecties. Met deze vaardigheden bent u nu uitgerust om dynamischere en gebruiksvriendelijkere Excel-documenten te maken. Voor degenen die graag dieper in de mogelijkheden van Excel willen duiken, biedt onze website een schat aan tutorials. Ontdek hier meer Excel-tips en -trucs.
Gerelateerde artikelen
Automatisch aanvullen tijdens het typen in de vervolgkeuzelijst Excel
Als u een vervolgkeuzelijst voor gegevensvalidatie heeft met grote waarden, moet u naar beneden scrollen in de lijst om de juiste te vinden, of u kunt het hele woord rechtstreeks in de keuzelijst typen. Als er een methode is om automatisch aanvullen toe te staan bij het typen van de eerste letter in de vervolgkeuzelijst, wordt alles gemakkelijker. Deze tutorial biedt de methode om het probleem op te lossen.
Maak een vervolgkeuzelijst vanuit een andere werkmap in Excel
Het is vrij eenvoudig om een vervolgkeuzelijst voor gegevensvalidatie te maken tussen werkbladen in een werkmap. Maar wat zou u doen als de lijstgegevens die u nodig hebt voor de gegevensvalidatie in een andere werkmap terechtkomen? In deze zelfstudie leert u hoe u in detail een vervolgkeuzelijst kunt maken vanuit een andere werkmap in Excel.
Maak een doorzoekbare vervolgkeuzelijst in Excel
Voor een vervolgkeuzelijst met talloze waarden is het vinden van een goede geen gemakkelijke taak. Eerder hebben we een methode geïntroduceerd voor het automatisch aanvullen van de vervolgkeuzelijst wanneer u de eerste letter in de vervolgkeuzelijst invoert. Naast de functie voor automatisch aanvullen, kunt u de vervolgkeuzelijst ook doorzoekbaar maken om de werkefficiëntie te verbeteren door de juiste waarden in de vervolgkeuzelijst te vinden. Probeer de methode in deze tutorial om de vervolgkeuzelijst doorzoekbaar te maken.
Vul automatisch andere cellen in bij het selecteren van waarden in de vervolgkeuzelijst van Excel
Stel dat u een vervolgkeuzelijst heeft gemaakt op basis van de waarden in celbereik B8: B14. Wanneer u een waarde in de vervolgkeuzelijst selecteert, wilt u dat de overeenkomstige waarden in celbereik C8: C14 automatisch in een geselecteerde cel worden ingevuld. Om het probleem op te lossen, zullen de methoden in deze tutorial je een plezier doen.
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!
Inhoudsopgave
- Meerdere selecties inschakelen
- VBA-code gebruiken
- Kutools voor Excel gebruiken met een paar klikken
- Meer bewerkingen
- Dubbele items toestaan
- Verwijder eventuele bestaande items
- Een aangepast scheidingsteken instellen
- Een gespecificeerd bereik instellen
- Uitvoeren in een beveiligd werkblad
- Gerelateerde artikelen
- De beste tools voor kantoorproductiviteit
- Heb je vragen? Stel ze hier.