Excel VBA Multicolumn Combo Box - Einfache Excel-Makros

Inhaltsverzeichnis

Im Folgenden sehen wir uns ein Programm in an Excel VBA wodurch ein Userform erstellt wird, das a . enthält mehrspaltiges Kombinationsfeld.

Die Userform, die wir erstellen werden, sieht wie folgt aus:

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

1. Öffnen Sie den 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.

3. Fügen Sie die Beschriftung, das Kombinationsfeld und die Befehlsschaltflächen 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 der Benutzerformular-, Beschriftungs- und Befehlsschaltflächen zu ändern, klicken Sie auf Ansicht, Eigenschaftenfenster und klicken Sie auf jedes Steuerelement.

5. Platzieren Sie in Ihrem Arbeitsblatt eine Befehlsschaltfläche, und fügen Sie die folgende Codezeile hinzu, um das Benutzerformular anzuzeigen:

Private Sub CommandButton1_Click()
UserForm1.Show
End 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 den 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.

9. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 2
Dim Films(1 bis 5, 1 bis 2) als String
Dim i As Integer, j As Integer
Filme(1, 1) = "Herr der Ringe"
Filme(2, 1) = "Geschwindigkeit"
Filme(3, 1) = "Star Wars"
Filme(4, 1) = "Der Pate"
Filme(5, 1) = "Pulp Fiction"
Filme(1, 2) = "Abenteuer"
Filme(2, 2) = "Action"
Filme(3, 2) = "Sci-Fi"
Filme(4, 2) = "Kriminalität"
Filme(5, 2) = "Drama"
ComboBox1.List = Filme
End Sub

Erläuterung: Die erste Codezeile setzt die Spaltenanzahl der Combobox auf 2. Anstatt die Spaltenanzahl zur Laufzeit einzustellen, können Sie diese Einstellung auch zur Entwurfszeit konfigurieren. Um dies zu erreichen, klicken Sie mit der rechten Maustaste auf das Kombinationsfeld-Steuerelement, klicken Sie auf Eigenschaften und setzen Sie die ColumnCount-Eigenschaft auf 2. Als nächstes deklarieren und initialisieren wir ein zweidimensionales Array. Die letzte Codezeile weist das Array der Combobox zu.

Wir haben nun den ersten Teil des Userform erstellt. Obwohl es bereits ordentlich aussieht, passiert noch nichts, wenn wir auf die Befehlsschaltflächen im Benutzerformular klicken.

10. Doppelklicken Sie im Projekt-Explorer auf UserForm1.

11. Doppelklicken Sie auf die Schaltfläche OK.

12. Fügen Sie die folgenden Codezeilen hinzu:

Private Sub CommandButton1_Click()
Entlade mich
MsgBox "Sie haben ausgewählt" & ComboBox1.Value
Bei Fehler Fortsetzen als nächstes
MsgBox "Sie mögen " & ComboBox1.Column(1) & " Filme"
End Sub

Hinweis: Diese Codezeilen schließen das Excel VBA-Benutzerformular und zeigen das ausgewählte Element und Genre an. Die 'On Error Resume Next'-Anweisung ignoriert den Fehler, wenn der Benutzer seinen eigenen Film ausfüllt (in diesem Fall ist kein Genre verfügbar).

13. Doppelklicken Sie auf die Schaltfläche Abbrechen.

14. Fügen Sie die folgende Codezeile hinzu:

Private Sub CommandButton2_Click()
Entlade mich
End Sub

Ergebnis, wenn Sie Geschwindigkeit auswählen und auf OK klicken.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave