Im Folgenden werden wir ein Programm in Excel VBA, die auf eine Userform erstellt, die ein mehrspaltigen Kombinationsfeld enthält.

Die Userform werden wir aussehen wie folgt erstellen:

Multicolumn Combo Box 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 Label hinzufügen, Kombinationsfeld und Befehlsschaltflächen. 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.

  2. 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, Etiketten- und Befehlsschaltflächen zu ändern, klicken Sie auf Ansicht, Eigenschaften-Fenster und klicken Sie auf jede Kontrolle.

  3. 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()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String

Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"

Films(2, 1) = "Speed"

Films(3, 1) = "Star Wars"

Films(4, 1) = "The Godfather"

Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"

Films(2, 2) = "Action"

Films(3, 2) = "Sci-Fi"

Films(4, 2) = "Crime"

Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Erläuterung: Die erste Codezeile legt die Anzahl der Spalten des Kombinationsfeldes 2. Anstatt die Anzahl der Spalten zur Laufzeit einstellen, Sie können diese Einstellung auch zur Entwurfszeit konfigurieren. Um dies zu erreichen, die Kontrolle der rechten Maustaste auf das Kombinationsfeld, klicken Sie auf Eigenschaften und stellen Sie die Spaltenanzahl-Eigenschaft auf 2. Als nächstes wir deklarieren und initialisieren ein zweidimensionales Array. Die letzte Codezeile weist das Array zu dem Kombinationsfeld.

Wir haben nun den ersten Teil der Userform erstellt. Obwohl es schon ordentlich aussieht, wird noch nichts geschehen, wenn wir die Befehlsschaltflächen auf der Userform klicken.

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

  2. Klicken Sie doppelt auf die Schaltfläche OK.

  3. Fügen Sie die folgenden Codezeilen:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next

MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Hinweis: diese Codezeilen die Excel-VBA-Userform zu schließen und das ausgewählte Element und Genre anzuzeigen. Der ‚On Error Resume Next‘ Anweisung ignoriert den Fehler, wenn der Benutzer füllt in seinem / ihren eigenen Film (in diesem Fall gibt es kein Genre verfügbar ist).

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

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

Private Sub CommandButton2_Click()

Unload Me

End Sub

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

Multicolumn Combo Box Result

Multicolumn Combo Box Result