Wie erstelle ich dynamische kaskadierende Listenfelder in Excel?
Möglicherweise wissen Sie, wie Sie eine Dropdown-Liste für die kaskadierende Validierung in Excel erstellen. Wie erstelle ich jedoch dynamische kaskadierende Listenfelder in Excel? In diesem Artikel wird eine VBA-Methode vorgestellt, mit der Sie das Problem beheben können.
Erstellen Sie dynamische kaskadierende Listenfelder mit VBA-Code
Erstellen Sie dynamische kaskadierende Listenfelder mit VBA-Code
Wie im folgenden Screenshot gezeigt, müssen Sie ein übergeordnetes Listenfeld erstellen, das die eindeutigen Werte der Spalte "Trinken" enthält, und alle entsprechenden Werte im zweiten Listenfeld basierend auf der Auswahl im übergeordneten Listenfeld anzeigen. Der folgende VBA-Code hilft Ihnen dabei. Bitte gehen Sie wie folgt vor.
1. Zunächst müssen Sie alle eindeutigen Werte aus der Spalte Trinken extrahieren. Wählen Sie eine leere Zelle aus und geben Sie die Array-Formel ein =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") in die Formel-Bar, und drücken Sie dann die Taste Ctrl + Shift + Enter Schlüssel. Dann ziehen Sie die Griff füllen um alle eindeutigen Werte zu erhalten. Siehe Screenshot:
Note: In der Formel $A$2:$A$11 ist der Bereich, aus dem Sie eindeutige Werte extrahieren. J1 ist die Zelle über Ihrer Formel.
Tipp: Wenn die Formel zu schwer zu merken und zu handhaben ist, wird die Wählen Sie Doppelte und eindeutige Zellen Nutzen von Kutools for Excel Dies ist eine gute Wahl, um schnell alle eindeutigen Werte aus einer Spalte zu extrahieren.
Bitte wählen Sie die Spalte aus, die eindeutige Werte enthält, aus denen Sie extrahieren. Aktivieren Sie dann das Dienstprogramm, indem Sie auf klicken Kutoolen > Auswählen > Wählen Sie Doppelte und eindeutige Zellen. In dem Wählen Sie Doppelte und eindeutige Zellen Wählen Sie im Dialogfeld Alles einzigartig (einschließlich 1. Duplikate) Option und klicken Sie auf OK Taste. Dann werden alle eindeutigen Werte in der Spalte ausgewählt. Bitte kopieren Sie sie und fügen Sie sie an einem neuen Ort ein. Siehe Screenshot:
Kutools for Excel: Mit mehr als 200 praktischen Excel-Add-Ins können Sie es innerhalb von 60 Tagen ohne Einschränkung testen. Jetzt herunterladen und kostenlos testen!
2. Fügen Sie zwei Listenfelder separat ein, indem Sie auf klicken Entwickler:in / Unternehmen > Insert > Listenfeld (ActiveX Control). Siehe Screenshot:
3. Klicken Sie mit der rechten Maustaste auf das übergeordnete Listenfeld und wählen Sie Ferienhäuser aus dem Kontextmenü. In dem Ferienhäuser Dialogfeld ändern Sie die (Name) Feld zu Trinken oder ein anderer Name nach Bedarf, geben Sie den Zellbereich ein, der die extrahierten eindeutigen Werte in das enthält ListFillRange Feld und schließen Sie den Dialog.
4. Wiederholen Sie Schritt 3, um die zweiten Listenfelder zu ändern (Name) Feld zu Artikel in der Ferienhäuser Dialogbox.
5. Klicken Sie mit der rechten Maustaste auf die Registerkarte Blatt und wählen Sie Code anzeigen aus dem Kontextmenü. Kopieren Sie dann den folgenden VBA-Code in das Code-Fenster. Siehe Screenshot:
VBA-Code: Erstellen Sie dynamische kaskadierende Listenfelder in Excel
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub
Notizen: Ändern Sie im Code Drink and Item die Namen zweier Listenfelder in Ihre eigenen Namen.
6. Drücken Sie die Taste Andere + Q Tasten zum Schließen der Microsoft Visual Basic für Applikationen Fenster.
7. Schalten Sie den Entwurfsmodus aus, indem Sie auf klicken Entwickler:in / Unternehmen > Entwurfsmodus.
Von nun an werden bei Auswahl eines Getränks wie Kaffee im übergeordneten Listenfeld alle Kaffeeartikel im zweiten angezeigt. Wenn Sie Tee oder Wein auswählen, werden nur die Tee- oder Weinartikel im zweiten Listenfeld angezeigt. Siehe Screenshot:
In Verbindung stehende Artikel:
- Wie lösche ich abhängige Dropdown-Listenzellen nach Auswahl in Excel?
- Wie erstelle ich abhängige kaskadierende Dropdown-Listen in Excel?
- Wie fülle ich andere Zellen automatisch aus, wenn ich Werte in der Excel-Dropdown-Liste auswähle?
- Wie erstelle ich einen Dropdown-Listenkalender in Excel?
- HWie kann ich eine Auswahl von ActiveX-Listenfeldern in Excel speichern oder beibehalten?
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen ...
Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich
- Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
- Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!