Inhaltsverzeichnis
Je nach Situation kann es notwendig sein, mehrere Werte in einer Dropdown-Liste auszuwählen. In diesem Tutorial zeigen wir Ihnen, wie Sie eine Mehrfachauswahl in einer Dropdown-Liste vornehmen können. Für diese Sitzung verwenden wir Excel 2019, Sie können aber auch Ihre bevorzugte Version verwenden.
Bevor wir in die Sitzung eintauchen, sollten wir uns mit dem Datensatz vertraut machen, der die Grundlage für unsere Beispiele bildet.
Hier haben wir mehrere Schreibwarenelemente, mit denen wir eine Dropdown-Liste erstellen und dort mehrere Elemente auswählen können.
Beachten Sie, dass es sich um einen einfachen Datensatz handelt, um die Dinge überschaubar zu halten. In einem praktischen Szenario können Sie auf einen viel größeren und komplexeren Datensatz stoßen.
Praxis Arbeitsbuch
Sie können das Arbeitsbuch für die Praxis über den unten stehenden Link herunterladen.
Mehrfachauswahl aus Dropdown-Liste treffen.xlsm
Mehrfachauswahl in einer Drop-Down-Liste
Zunächst müssen wir eine Dropdown-Liste auf der Grundlage unserer Briefbögen erstellen. Zögern Sie nicht, den Artikel über die Erstellung einer Dropdown-Liste zu lesen.
In der Validierung von Daten Dialogfenster wählen Sie das LISTE Datentyp und fügen Sie den Zellbereich der Elemente ein.
B4:B11 ist der Bereich, der die Briefpapier-Elemente enthält. Jetzt finden Sie die Dropdown-Liste.
Lesen Sie mehr: Excel Dropdown-Liste je nach Auswahl
1. mehrere Elemente auswählen (doppelte Auswahl ist möglich)
Eine herkömmliche Dropdown-Liste wählt immer nur ein einziges Element aus. Hier können Sie sehen, dass wir ausgewählt haben Stift aus der Liste (Bild unten).
Wenn wir nun ein anderes Element auswählen, sagen wir Bleistift
dann wird der vorherige Wert ersetzt. nur Bleistift bleibt ausgewählt.
Um mehrere Elemente auszuwählen, müssen wir die VBA Öffnen Sie den Code. Microsoft Visual Basic für Anwendungen Fenster (drücken Sie ALT + F11 um sie zu öffnen).
Wenn Sie nun auf den Namen oder die Nummer des Arbeitsblatts doppelklicken, auf dem Sie mehrere Elemente in der Dropdown-Liste auswählen möchten, wird das Code-Fenster für das betreffende Blatt angezeigt.
Hier ist das Codefenster für Blatt2 in unserer Arbeitsmappe (wir haben die Dropdown-Liste in diesem Blatt).
Sobald das Code-Fenster geöffnet ist, fügen Sie dort den folgenden Code ein
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.UndoOldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Speichern Sie den Code, und versuchen Sie nun, Werte in der Dropdown-Liste auszuwählen.
Nach der Auswahl Bleistift wählen wir ein anderes Element aus Notebook Und wie Sie sehen, haben wir beide Gegenstände gefunden (siehe Bild unten).
Mit diesem Code können wir die Auswahl wiederholen. Wenn wir zum Beispiel Bleistift wieder,
finden wir den Artikel in der Auswahlbox wieder.
Code Erläuterung
Wir haben zwei Zeichenketten deklariert Alter Wert und Neuwertig .
Wie Sie sehen können, haben wir die Dropdown-Liste in der D4 Zelle, deshalb lautet unsere Zieladresse D4 Außerdem haben wir erneut überprüft, ob die Zelle die Datenüberprüfung verwendet oder nicht. Ziel.SpezialZellen .
Sobald ein Wert ausgewählt wurde, haben wir die Ereignisse ausgeschaltet ( Application.EnableEvents = False
), damit Änderungen das Ereignis nicht erneut auslösen. Anschließend wird das ausgewählte Element in der Neuwertig .
Nachdem wir die Änderung rückgängig gemacht haben, haben wir den Wert in die Alter Wert Prüfen Sie dann, ob die Alter Wert Wenn leer (d.h. nur ein Wert ist ausgewählt), dann wird der Neuwertig Andernfalls verketten Sie die Alter Wert und Neuwertig .
Vor dem Beenden der Veranstaltung setzen Sie das Ereignis zurück, damit wir es bei Bedarf ändern können.
Lesen Sie mehr: Mehrfach abhängige Drop-Down-Liste Excel VBA
2. mehrere Elemente aus der Dropdown-Liste auswählen (nur einmalige Auswahl)
Im vorangegangenen Abschnitt haben wir die Mehrfachauswahl gesehen, bei der Wiederholungen erlaubt waren. Wenn Sie das nicht wollen, dann folgen Sie diesem Abschnitt.
Der Einfachheit halber haben wir für diese Demonstration ein separates Blatt verwendet. Diesmal sind wir bei Blatt3. Schreiben Sie den folgenden Code in das Codefenster für dieses Blatt.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Sehen Sie sich den Code genauer an, dann werden Sie den kleinen Unterschied erkennen können.
Hier haben wir eine VBA Funktion genannt INSTR . die INSTR Funktion gibt die Position des ersten Vorkommens einer Teilzeichenkette in einer Zeichenkette zurück. Weitere Informationen finden Sie in diesem INSTR-Artikel.
Mit dieser logischen Operation mit InStr(1, AlterWert, NeuerWert) = 0 haben wir geprüft, ob die Werte gefunden wurden oder nicht. Wenn die logische Operation Folgendes ergibt WAHR (nicht früher gefunden), dann kann das Element ausgewählt und mit dem früheren Wert verknüpft werden.
Speichern Sie den Code und versuchen Sie nun, ein bereits ausgewähltes Element auszuwählen.
Hier haben wir bereits ausgewählt Bleistift Wenn wir das noch einmal auswählen wollen, geht das nicht, weil es keine doppelten Werte zulässt.
Lesen Sie mehr: Erstellen einer Dropdownliste aus einem anderen Blatt in Excel
3. wählen Sie Elemente in Newline
Bisher haben wir festgestellt, dass die Elemente durch ein Komma getrennt sind. In diesem Abschnitt werden wir die ausgewählten Elemente in Zeilenumbrüchen anordnen.
Der Einfachheit halber verschmelzen wir einige Zellen mit der D4 Markieren Sie dazu die Zellen, die Sie zusammenführen möchten, und klicken Sie auf Zusammenführen & Zentrieren von der Ausrichtung Abschnitt der Startseite tab.
Die Zelle wird mehr Höhe gewinnen.
Sehen wir uns nun den Code für die Trennung von Elementen durch Zeilenumbrüche an. Verwenden Sie folgenden Code
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & vbNewLine & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Der einzige Unterschied zum vorherigen Code besteht darin, dass wir dieses Mal vbNewLine zwischendurch OldValue und NeuerWert .
vbNewLine erzeugt eine neue Linie zwischen den Einträgen.
Wählen Sie nun die Artikel aus.
Wir wählen einen Artikel aus Stift Wählen Sie nun ein anderes Element aus, das in der obigen Abbildung zu sehen ist.
Sie werden feststellen, dass die beiden Artikel in verschiedenen Zeilen stehen.
Hier haben wir zwei Werte, die in zwei verschiedenen Zeilen stehen. Wenn Sie einen weiteren Wert auswählen, wird dieser in eine andere Zeile eingefügt. Jeder Wert steht in einer neuen Zeile.
Beachten Sie, dass Sie, wenn Sie ein anderes Trennzeichen zur Trennung der Elemente wünschen, dieses in Anführungszeichen anstelle von vbNewline .
Schlussfolgerung
Das war's für heute. Wir haben mehrere Methoden aufgelistet, um mehrere Auswahlen in einer Dropdown-Liste zu treffen. Wir hoffen, dass Sie diese hilfreich finden. Bitte kommentieren Sie, wenn Ihnen etwas schwer verständlich erscheint. Lassen Sie uns wissen, wenn wir andere Methoden übersehen haben.