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). Der erste Schritt besteht darin, einen Dynamikbereich für die Liste wie folgt zu erstellen:
  1. 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.
  2. Geben Sie einen Namen für den Bereich ColorList ein.
  3. 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.
  4. OK klicken.
Fügen Sie beim Anpassen des Ausdrucks an Ihre eigene Arbeit keine Kopfzelle in den Bereich ein (LookupLists! $ A $ 2). Identifizieren Sie nur die Zellen, die tatsächliche Listenelemente enthalten. Außerdem müssen beide Zellreferenzen als absolut angegeben werden. Erstellen Sie als Nächstes das Benutzerformular wie folgt:
  1. Öffnen Sie den Visual Basic-Editor (VBE) durch Drücken von Alt + F11.
  2. Wählen Sie im Menü Einfügen die Option UserForm.
  3. 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.
  4. Ich habe ein Beschriftungssteuerelement hinzugefügt und den Text Farbe eingegeben. Sie können diesen Schritt überspringen, wenn Sie möchten.
  5. Nennen Sie das Kombinationsfeld cboColor.
Jetzt können Sie den Code hinzufügen, der das Kombinationsfeld ausfüllt. Gehen Sie dazu wie folgt vor:
  1. Doppelklicken Sie auf das Benutzerformular, um dessen Modul zu öffnen.
  2. Geben Sie die unten gezeigte Unterprozedur ein:
 Private Sub UserForm_Initialize () 

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
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. Fügen wir nun ein Element zur Farbliste hinzu und sehen, wie gut das Kombinationsfeld funktioniert. Kehren Sie zu dem Blatt zurück, das die Liste enthält, und geben Sie Weiß in Zelle A7 ein. Kehren Sie dann zur VBE zurück und führen Sie das Benutzerformular ein zweites Mal aus. Wie Sie sehen können, wird der Bereichsname ColorList automatisch an das neue Listenelement Weiß angepasst. Anschließend füllt der Code das Kombinationsfeld mit der gesamten Liste, einschließlich Weiß, ohne Änderungen.

Um das Beispiel einfach zu halten, habe ich jede Dateneingabeaufgabe umgangen. In einer realen Anwendung möchten Sie wahrscheinlich den vom Kombinationsfeld ausgewählten Wert in einen Datenbereich kopieren. Das erfordert zusätzlichen Code. Ich habe Ihnen nur gezeigt, wie Sie das Kombinationsfeld mit dem Inhalt eines Dynamikbereichs (Liste) füllen.

© Copyright 2021 | mobilegn.com