Füllen Sie ein Benutzerformular-Kombinationsfeld in Excel mit einer dynamischen Liste
Das Auffüllen eines Benutzerformular-Kombinationsfelds mit einer statischen Liste erfordert ein wenig Wissen und etwas VBA-Code. Um das Kombinationsfeld zu aktualisieren, wenn die Liste aktualisiert wird, ist etwas mehr Arbeit erforderlich. Sie können den Listenbereich jedes Mal aktualisieren, wenn Sie ihn aktualisieren, oder Sie können eine dynamische Liste erstellen. Mit dynamischer Liste meine ich wirklich einen Dynamikbereich, der eine Liste von Datenelementen enthält.
Schauen wir uns ein kurzes Beispiel an. Das folgende Benutzerformular enthält ein Kombinationsfeld mit einem Erkennungszeichen. Sie möchten das Kombinationsfeld mit der Liste in A1: A6 füllen (auf einem Blatt mit dem Namen LookupLists, das in der Abbildung nicht dargestellt ist).

- Klicken Sie auf die Registerkarte Formeln und dann in der Gruppe Definierte Namen auf Name definieren, um das Dialogfeld Neuer Name zu öffnen. Wählen Sie in Excel 2003 im Menü Einfügen die Option Name und anschließend Definieren.
- Geben Sie einen Namen für den Bereich ColorList ein.
- Geben Sie im Steuerelement Refers To den folgenden Ausdruck ein: = OFFSET (LookupLists! $ A $ 2, 0, 0, COUNTA (LookupLists! $ A: $ A) -1, 1). LookupLists ist der Name des Blattes, das die Liste der Farben enthält.
- OK klicken.
- Öffnen Sie den Visual Basic-Editor (VBE) durch Drücken von Alt + F11.
- Wählen Sie im Menü Einfügen die Option UserForm.
- Fügen Sie mithilfe der Toolbox ein Kombinationsfeld-Steuerelement ein. Die Toolbox sollte sichtbar sein, wenn Sie das Benutzerformular auswählen. Wählen Sie bei Bedarf im Menü Ansicht die Option Toolbox.
- Ich habe ein Beschriftungssteuerelement hinzugefügt und den Text Farbe eingegeben. Sie können diesen Schritt überspringen, wenn Sie möchten.
- Nennen Sie das Kombinationsfeld cboColor.
- Doppelklicken Sie auf das Benutzerformular, um dessen Modul zu öffnen.
- Geben Sie die unten gezeigte Unterprozedur ein:
Private Sub UserForm_Initialize ()Um zu sehen, wie das Kombinationsfeld funktioniert, kehren Sie zum Benutzerformular zurück (schließen Sie das Modul) und führen Sie es aus, indem Sie auf F5 klicken. Die For Each-Anweisung füllt die Liste mit den Datenelementen im Bereich ColorList. Schließen Sie das Benutzerformular.Kombinieren Sie das Kombinationsfeld Farbe.
Dim rngColor As Range
Dim ws As Worksheet
Setze ws = Arbeitsblätter ("LookupLists")
Für jede rngColor In ws.Range ("ColorList")
Me.cboColor.AddItem rngColor.Value
Nächste rngColor
End Sub

