Im Folgenden werden wir ein Programm in Excel VBA, die auf eine Userform erstellt, die abhängig Kombinationsfelder enthält. Die Userform werden wir aussehen wie folgt erstellen:

Der Benutzer wählt Tiere aus einer Dropdown-Liste. Als Ergebnis kann der Benutzer ein Tier von einer zweiten Dropdown-Liste auswählen.

Dependent Combo Boxes in Excel VBA

Der Benutzer wählt Sport aus einer Dropdown-Liste. Als Ergebnis kann der Benutzer einen Sport von einer zweiten Dropdown-Liste auswählen.

Dependent Combo Boxes in Excel VBA

Um diese Userform zu erstellen, führen Sie die folgenden Schritte.

  1. Öffnen Sie den Visual Basic-Editor. Wenn das Projekt-Explorer nicht sichtbar ist, klicken Sie auf Ansicht, Projekt-Explorer.

  2. Klicken Sie auf Einfügen, Benutzerformular. Wenn die Toolbox nicht automatisch angezeigt wird, klicken Sie auf Ansicht, Toolbox. Ihr Bildschirm sollte wie unten aufgebaut werden.

Userform Screen Setup in Excel VBA

  1. die Kombinationsfelder hinzufügen (zuerst links an, die zweite auf der rechten Seite) Taste und Befehl. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem Bild von der Userform gezeigt früher konsistent sein. Erstellen Sie zum Beispiel ein Kombinationsfeld-Steuerelement von der Toolbox auf ComboBox klicken.

Als Nächstes können Sie ein Kombinationsfeld auf dem Benutzerformular ziehen.

  1. Sie können die Namen ändern und die Beschriftungen der Kontrollen. Die Namen werden in dem Excel-VBA-Code verwendet. Bildunterschriften sind diejenigen, die auf dem Bildschirm angezeigt. Es empfiehlt sich, die Namen der Kontrollen zu ändern, aber es ist hier nicht notwendig, da wir nur wenige Kontrollen in diesem Beispiel haben. Um die Beschriftung der Userform und Befehlsschaltfläche zu ändern, klicken Sie auf Ansicht, Eigenschaften-Fenster und klicken Sie auf jede Kontrolle.

  2. die Userform zu zeigen, eine Befehlsschaltfläche auf dem Arbeitsblatt platzieren und die folgende Codezeile hinzu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Wir werden jetzt die Sub UserForm_Initialize zu erstellen. Wenn Sie die Show-Methode für die Userform verwenden, wird diese Unter automatisch ausgeführt werden.

  1. Öffnen Sie den Visual Basic-Editor.

  2. Geben Sie in dem Projekt-Explorer direkt auf UserForm1 und klicken Sie dann auf Code anzeigen klicken.

Wählen Sie Userform aus der linken Dropdown-Liste 8.. Wählen Sie Initialisieren von der rechten Dropdown-Liste.

  1. die folgenden Codezeilen hinzu:

Private Sub UserForm_Initialize()

With ComboBox1

.AddItem "Animals"

.AddItem "Sports"

.AddItem "Food"

End With

End Sub

Erläuterung: Diese Codezeilen füllen Sie das erste Kombinationsfeld.

Wir haben nun den ersten Teil der Userform erstellt. Obwohl es schon ordentlich aussieht, wird noch nichts geschehen, wenn wir ein Element aus dem ersten Kombinationsfeld auswählen.

  1. In dem Projekt-Explorer, klicken Sie doppelt auf UserForm1.

  2. Klicken Sie doppelt auf das erste Kombinationsfeld.

  3. Fügen Sie die folgenden Codezeilen:

Private Sub ComboBox1_Change()

Dim index As Integer

index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index

Case Is = 0

With ComboBox2

.AddItem "Dog"

.AddItem "Cat"

.AddItem "Horse"

End With

Case Is = 1

With ComboBox2

.AddItem "Tennis"

.AddItem "Swimming"

.AddItem "Basketball"

End With

Case Is = 2

With ComboBox2

.AddItem "Pancakes"

.AddItem "Pizza"

.AddItem "Chinese"

End With

End Select

End Sub

Erläuterung: Excel VBA verwendet den Wert der Variablen Index jede nachfolgende Case-Anweisung zu testen, um zu sehen, mit denen Elemente der zweite Kombinationsfeld gefüllt werden soll. Gehen Sie durch unsere Select Case

Programmieren mehr über die Select Case-Struktur zu lernen.

  1. Klicken Sie doppelt auf die Schaltfläche Importieren.

  2. Fügen Sie den folgenden Code-Zeile:

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Ergebnis:

Dependent Combo Boxes in Excel VBA