300 Beispiele

Abhängige Comboboxen

Dependent Combo Boxes

Im Folgenden sehen wir uns ein Programm in an Excel VBA wodurch ein Benutzerformular erstellt wird, das enthält abhängige Kombinationsfelder . Die Userform, die wir erstellen werden, sieht wie folgt aus:





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

Abhängige Kombinationsfelder in Excel VBA





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

Abhängige Kombinationsfelder in Excel VBA



Führen Sie die folgenden Schritte aus, um dieses Benutzerformular zu erstellen.

1. Öffnen Sie die Visual Basic-Editor . Wenn der 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 folgt eingerichtet sein.

Benutzerformular-Bildschirmeinrichtung in Excel VBA

3. Fügen Sie die Kombinationsfelder (das erste links, das zweite rechts) und die Befehlsschaltfläche hinzu. Sobald dies abgeschlossen ist, sollte das Ergebnis mit dem zuvor gezeigten Bild des Benutzerformulars übereinstimmen. Erstellen Sie beispielsweise ein Kombinationsfeld-Steuerelement, indem Sie in der Toolbox auf ComboBox klicken. Als Nächstes können Sie ein Kombinationsfeld auf das Benutzerformular ziehen.

4. Sie können die Namen und Beschriftungen der Steuerelemente ändern. Namen werden im Excel VBA-Code verwendet. Untertitel sind die, die auf Ihrem Bildschirm erscheinen. Es hat sich bewährt, die Namen der Steuerelemente zu ändern, aber dies ist hier nicht erforderlich, da wir in diesem Beispiel nur wenige Steuerelemente haben. Um die Beschriftung des Benutzerformulars und der Befehlsschaltfläche zu ändern, klicken Sie auf Ansicht, Eigenschaftenfenster, und klicken Sie auf jedes Steuerelement.

5. Um das Benutzerformular anzuzeigen, platzieren Sie a Befehlstaste auf Ihrem Arbeitsblatt und fügen Sie die folgende Codezeile hinzu:

Privatgelände SubCommandButton1_Click()

UserForm1.Show

Ende Sub

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

6. Öffnen Sie die Visual Basic-Editor .

7. Klicken Sie in dem Projekt-Explorer mit der rechten Maustaste auf UserForm1 und klicken Sie dann auf Code anzeigen.

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

Wie hebe ich Duplikate in Excel hervor?

9. Fügen Sie die folgenden Codezeilen hinzu:

Privatgelände SubUserForm_Initialize()

MitComboBox1
.AddItem 'Tiere'
.AddItem 'Sport'
.AddItem 'Essen'
Ende Mit

Ende Sub

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

Wir haben nun den ersten Teil des Userform erstellt. Obwohl es schon ordentlich aussieht, passiert noch nichts, wenn wir einen Gegenstand aus dem ersten Kombinationsfeld auswählen.

10. Doppelklicken Sie im Projekt-Explorer auf UserForm1.

11. Doppelklicken Sie auf das erste Kombinationsfeld.

12. Fügen Sie die folgenden Codezeilen hinzu:

Privatgelände SubComboBox1_Change()

KeinerIndexWie Ganze Zahl
index = ComboBox1.ListIndex

ComboBox2.Clear

Auswählen FallIndex
Fall Ist= 0
MitComboBox2
.AddItem 'Hund'
.AddItem 'Katze'
.AddItem 'Pferd'
Ende Mit
Fall Ist= 1
MitComboBox2
.AddItem 'Tennis'
.AddItem 'Schwimmen'
.AddItem 'Basketball'
Ende Mit
Fall Ist= 2
MitComboBox2
.AddItem 'Pfannkuchen'
.AddItem 'Pizza'
.AddItem 'Chinesisch'
Ende Mit
Ende Auswählen

Ende Sub

Erläuterung: Excel VBA verwendet den Wert des Variablenindex, um jede nachfolgende Case-Anweisung zu testen, um zu sehen, mit welchen Elementen das zweite Kombinationsfeld gefüllt werden soll. Gehen Sie durch unsere Fall auswählen Programm, um mehr über die Select Case-Struktur zu erfahren.

13. Doppelklicken Sie auf die Schaltfläche Importieren.

14. Fügen Sie die folgende Codezeile hinzu:

Privatgelände SubCommandButton1_Click()

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

Ende Sub

Ergebnis:

Abhängige Kombinationsfelder in Excel VBA

7/11 abgeschlossen! Erfahren Sie mehr über Benutzerformulare >
Gehe zum nächsten Kapitel: Bereich



^