Kombobox – dies ist eines der nützlichsten Steuerelemente, mit dem Sie Daten aus einer vordefinierten Liste eingeben können. In Excel VBA ist die Kombobox ein wesentlicher Bestandteil der Entwicklung einer Benutzeroberfläche, die die Dateneingabe erleichtert und die Arbeit mit Tabellen und Datenbanken erleichtert.
In diesem Artikel werden wir uns ausführlich mit dem Ausfüllen einer Combobox in VBA Excel befassen und die grundlegenden Methoden und Eigenschaften betrachten, die Ihnen helfen, eine benutzerfreundliche und funktionale Schnittstelle für Ihre Arbeitsmappe zu erstellen.
Die wichtigsten Methoden zum Füllen einer Kombobox in Excel VBA sind die Methoden AddItem und ColumnWidths, mit denen Sie Elemente zur Kombinationsfeld-Liste hinzufügen und die Spaltenbreite für die Liste entsprechend festlegen können.
Die Anwendung der Kombobox in Excel VBA kann vielfältig sein, von der Auswahl von Elementen aus dem Referenzhandbuch bis zum Filtern von Daten in einer Tabelle. Dieser Artikel enthält grundlegende Beispiele für die Verwendung einer Kombobox, mit denen Sie in VBA Excel schneller und bequemer arbeiten können.
So füllen Sie eine Combobox in VBA Excel aus
Hier ist ein Beispielcode, mit dem Sie die Combobox mit Daten füllen können:
Sub FillComboBox()Dim comboBox As ComboBoxSet comboBox = Sheet1.ComboBox1comboBox.Clear ' очищаем комбобокс перед заполнением' заполняем комбобокс данными из массиваcomboBox.List = Array("Значение 1", "Значение 2", "Значение 3")End Sub
In diesem Beispiel erstellen wir ein Kombinationsobjekt mit der Set-Anweisung und binden es mithilfe der Sheet1-Eigenschaft an das Kombinationsobjekt im Arbeitsblatt.ComboBox1 . Dann bereinigen wir die Combobox mit der Clear-Methode und füllen sie mit den Daten aus dem Array mit der List-Eigenschaft aus.
Sie können die Combobox auch mit Werten aus einem Zellbereich füllen, indem Sie die ListFillRange-Eigenschaft verwenden. Dazu müssen Sie einen Zellbereich im Blattformat angeben!Temperaturbereich . Hier ist ein Beispielcode:
Sub FillComboBoxFromRange()Dim comboBox As ComboBoxSet comboBox = Sheet1.ComboBox1comboBox.Clear' заполняем комбобокс значениями из диапазона ячеекcomboBox.ListFillRange = "Лист1!A1:A5"End Sub
In diesem Beispiel füllen wir die Combobox mit Werten aus dem Zellbereich A1:A5 auf dem Arbeitsblatt Tabelle1 aus . Beachten Sie, dass Sie vor dem Angeben eines Zellbereichs einen Blattnamen und ein Ausrufezeichen angeben müssen.
Auf diese Weise können Sie den Excel-VBA-Code verwenden, um die Combobox einfach mit Werten aus einem Array oder einem Zellbereich zu füllen. Dies ist sehr praktisch, wenn Sie die Werteliste in einer Kombinationsfox dynamisch ändern möchten, abhängig von bestimmten Bedingungen oder Daten.
Beispiele für die Verwendung einer Kombobox in Excel VBA
1. Füllen der Kombobox mit Daten aus einem Zellbereich:
Sub FillComboBox()Dim ComboBoxRange As RangeDim ComboBoxValue As VariantDim i As Integer' Определение диапазона ячеек для заполнения комбобоксаSet ComboBoxRange = Range("A1:A5")' Очистка комбобокса перед заполнениемComboBox1.Clear' Заполнение комбобокса данными из диапазона ячеекFor i = 1 To ComboBoxRange.Rows.CountComboBoxValue = ComboBoxRange.Cells(i, 1).ValueComboBox1.AddItem ComboBoxValueNext i' Установка значения по умолчаниюComboBox1.Value = ComboBoxRange.Cells(1, 1).ValueEnd Sub
2. Füllen der Kombobox mit Daten aus einem Array:
Sub FillComboBoxFromArray()Dim ComboBoxValues() As VariantDim i As Integer' Определение массива значений для заполнения комбобоксаComboBoxValues = Array("Значение 1", "Значение 2", "Значение 3")' Очистка комбобокса перед заполнениемComboBox2.Clear' Заполнение комбобокса данными из массиваFor i = LBound(ComboBoxValues) To UBound(ComboBoxValues)ComboBox2.AddItem ComboBoxValues(i)Next i' Установка значения по умолчаниюComboBox2.Value = ComboBoxValues(LBound(ComboBoxValues))End Sub
3. Füllen des Kombinationsfostens mit Daten aus dem Ergebnis einer Datenbankabfrage:
Sub FillComboBoxFromDatabase()Dim Connection As ObjectDim Recordset As ObjectDim ComboBoxValue As Variant' Подключение к базе данныхSet Connection = CreateObject("ADODB.Connection")Connection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\База данных.accdb"' Выполнение запросаSet Recordset = Connection.Execute("SELECT Значение FROM Таблица")' Очистка комбобокса перед заполнениемComboBox3.Clear' Заполнение комбобокса данными из результата запросаDo Until Recordset.EOFComboBoxValue = Recordset.Fields("Значение").ValueComboBox3.AddItem ComboBoxValueRecordset.MoveNextLoop' Установка значения по умолчаниюComboBox3.Value = ComboBox3.List(0)' Закрытие подключения к базе данныхRecordset.CloseConnection.CloseSet Recordset = NothingSet Connection = NothingEnd Sub
Diese Beispiele zeigen verschiedene Möglichkeiten, wie Sie eine Kombobox in Excel VBA füllen können. Abhängig vom Kontext Ihrer Arbeit und der Datenquelle können Sie die bequemste Methode auswählen.