VBA ComboBox

Excel VBA ComboBox

ComboBox ist die Benutzerformularfunktion in VBA . Sie unterscheidet sich von den Textfeldern, da Textfelder nur Text enthalten und der Benutzer die Eingabe beliebiger Datentypen ermöglicht. Durch die Verwendung von Kombinationsfeldern wird der Benutzer jedoch auf den gewünschten Antworttyp beschränkt Damit die Daten ordentlich sind, ähnelt sie der Validierung der Listendaten in Excel.

ComboBox kann mit einer Dropdown-Liste in Excel verglichen werden. In Arbeitsblättern haben wir die Datenüberprüfung verwendet, um ein Dropdown-Menü bereitzustellen. In VBA gibt es jedoch eine Benutzerformularfunktion, mit der ein Dropdown-Menü in einem beliebigen Benutzerformular bereitgestellt werden kann Wenn wir ein Kombinationsfeld in Excel verwenden möchten, können wir auch über den Entwicklerbereich darauf zugreifen. Von dort aus können wir Kombinationsfelder für einzelne oder mehrere Zellen erstellen.

Das Kombinationsfeld ist der Dropdown-Liste in einem Excel-Arbeitsblatt sehr ähnlich. Mit dem Kombinationsfeld können wir vordefinierte Werte speichern, sodass Benutzer die Auswahl aus der Liste im Kombinationsfeld verfügbar machen. Das Kombinationsfeld wird im Allgemeinen zusammen mit Benutzerformularen verwendet, um die Eingaben der Benutzer zu erhalten.

Benutzerformulare sind nützlich, aber andere Tools im Benutzerformular machen das Benutzerformular so besonders. Eines der Tools, die wir häufig als Tool für Benutzerformulare verwenden, ist „ComboBox“.

Top 2 Möglichkeiten zum Erstellen einer VBA-ComboBox

Sie können diese VBA Combo Box Excel-Vorlage hier herunterladen - VBA Combo Box Excel-Vorlage

# 1 - Verwenden der direkten Codierung

Zuerst werden wir sehen, wie Combo Box mit dem Arbeitsblatt verwendet wird. Öffnen Sie eines der Arbeitsblätter in der Excel-Arbeitsmappe, gehen Sie zur Registerkarte Entwickler, und unter dieser Registerkarte befindet sich ein Tool namens "Einfügen". Klicken Sie darauf und darunter haben wir zwei Optionen Active X Controls & Form Controls in Excel.

Wählen Sie unter "Active X Controls" die Option "Combo Box".

Jetzt können Sie dieses Objekt auf jedes Arbeitsblatt zeichnen.

Klicken Sie mit der rechten Maustaste auf das Kombinationsfeld und wählen Sie die Option "Eigenschaften".

Wenn Sie Eigenschaften auswählen, wird eine große Liste von Eigenschaften eines Kombinationsfelds geöffnet.

Für dieses Kombinationsfeld geben wir eine Liste der Abteilungsnamen an. Ändern Sie daher die Namenseigenschaft des Kombinationsfelds in  "DeptComboBox" .

Jetzt wird dieses Kombinationsfeld mit dem Namen "DeptComboBox" bezeichnet . Wir müssen vordefinierte Abteilungsnamen angeben, daher habe ich hier eine Liste von Abteilungsnamen.

Jetzt müssen wir diese Werte zur Kombinationsfeldliste hinzufügen. Dies kann auf zwei Arten geschehen, durch Codierung oder durch den Namensmanager.

Doppelklicken Sie auf die Combobox und Sie gelangen zur VBA-Makroprozedur.

Diese Abteilungsnamen müssen jedoch angezeigt werden, wenn die Arbeitsmappe geöffnet wird. Doppelklicken Sie also auf „ThisWorkbook“.

Wählen Sie aus der Dropdown-Liste "Arbeitsmappe".

Wählen Sie aus den Optionen "Öffnen".

Jetzt wird ein Leerzeichen wie das folgende erstellt.

Geben Sie in dieses Makro den folgenden Code ein.

Code:

 Private Sub Workbook_Open () mit Arbeitsblättern ("Sheet1"). DeptComboBox .AddItem "Finance" .AddItem "Marketing" .AddItem "Merchandising" .AddItem "Operations" .AddItem "Audit" .AddItem "Client Servicing" End With End Sub 

Ok, jetzt speichern und schließen Sie die Arbeitsmappe. Wenn Sie die Arbeitsmappe erneut öffnen, werden die Abteilungsnamen darin angezeigt.

# 2 - Verwenden von UserForm

Eine andere Möglichkeit, der ComboBox Werte hinzuzufügen, ist die Verwendung des Benutzerformulars. Geben Sie den Zellen zunächst einen Namen als "Abteilung".

Gehen Sie zum Visual Basic-Editor und fügen Sie das Benutzerformular über die Option EINFÜGEN ein.

Jetzt wird das neue Benutzerformular erstellt.

Neben dem Benutzerformular sehen wir "Toolbox" aus dieser Toolbox, in die wir "Combo Box" einfügen können.

Jetzt ist das Kombinationsfeld in das Benutzerformular eingebettet. Wählen Sie bei dieser Methode zum Öffnen der Eigenschaftenoption das Kombinationsfeld aus und drücken Sie die Taste F4, um das Eigenschaftenfenster zu öffnen.

Scrollen Sie auf der Registerkarte Eigenschaften nach unten und wählen Sie "Zeilenquelle".

Geben Sie für diese „Zeilenquelle“ den Namen ein, den wir den Abteilungsnamenszellen gegeben haben.

Dieses Kombinationsfeld enthält nun die Referenz des Namens "Abteilung" .

Führen Sie nun das Benutzerformular mit der Schaltfläche Ausführen aus.

Jetzt sehen wir eine Liste der Abteilungsnamen im Kombinationsfeld des Benutzerformulars.

Praktisch Benutzerformular, das einem Kombinationsfeld, einem Textfeld und vielen anderen Tools zugeordnet ist. Wir erstellen ein einfaches Dateneingabe-Benutzerformular mit einem Textfeld und einem Kombinationsfeld.

Erstellen Sie ein Benutzerformular wie das folgende.

Erstellen Sie zwei Befehlsschaltflächen.

Doppelklicken Sie auf die Schaltfläche "SENDEN", ​​die unter dem Makro geöffnet wird.

Fügen Sie in diesem Makro den folgenden Code hinzu.

Code:

 Private Sub CommandButton1_Click() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(LR, 1).Value = TextBox1.Value Cells(LR, 2).Value = ComboBox1.Value End Sub 

Now double click on the “CANCEL” button and add the below code.

Now in the worksheet create a template like the below.

Now run the user form and it will open up like this.

Enter the employee name and pick the department name from the combo list.

Click on the SUBMIT button and see the magic.

We got the values entered in the table format we have created.

Things to Remember

  • COMBO BOX has its own properties as well.
  • Adding values to list comes in two ways one is a coding way and another one is range name reference.
  • COMBO BOX is usually part of the user form.