Verwenden Sie eine Excel-Tabellenspalte in der ComboBox-Eingabebereichseigenschaft

Verwenden Sie eine Excel-Tabellenspalte in der ComboBox-Eingabebereichseigenschaft

Ich habe dies in StackOverflow gefragt und wurde hierher weitergeleitet. Entschuldigen Sie die Redundanz.

Ich habe ein Excel-Arbeitsblatt mit einem Kombinationsfeld auf Blatt1, das über seine Eingabebereichseigenschaft aus einem dynamischen benannten Bereich auf Blatt2 gefüllt wird. Es funktioniert einwandfrei und es ist kein VBA erforderlich.

Meine Daten in Sheet2 befinden sich eigentlich in einer Excel-Tabelle (alle Daten befinden sich in der XLS-Datei, keine externen Datenquellen). Der Übersichtlichkeit halber wollte ich eine strukturierte Tabellenreferenz für den Eingabebereich des Kombinationsfelds verwenden, kann aber scheinbar keine Syntax finden, die funktioniert, z. B. myTable[[#Data],[myColumn3]]

Ich kann keine Hinweise darauf finden, dass das Kombinationsfeld strukturierte Tabellenverweise akzeptieren WIRD, sehe aber auch keinen Grund, warum es das nicht tun sollte.

Die Frage besteht also aus zwei Teilen: 1. Ist es möglich, in der Eingabebereichseigenschaft des Kombinationsfelds einen Tabellenspaltenverweis zu verwenden (ohne VBA) und 2. WIE?

Antwort1

Mir ist klar, dass das eine ziemlich alte Frage ist, aber nur für den Fall, dass jemand wie ich gerade darüber stolpert, als ich nach einer Lösung für dieselbe Frage suchte … Wie ScottieB konnte auch ich die Antwort von dav nicht für mich umsetzen. So habe ich es in Excel 2013 gelöst.

  1. Erstellen Sie Ihre vertikale Auswahlliste für Ihr Kombinationsfeld. (Noch) nicht in einer Tabelle und (noch) nicht mit einer Überschrift, aber lassen Sie Platz dafür, sondern nur eine Spalte mit allem, was Sie für Ihr Dropdown-Menü benötigen.

  2. Erstellen/definieren Sie einen Namen für Ihre Liste mit der regulären Notation Sheet1!$A$1:$A$2.

  3. Fügen Sie Ihr Kombinationsfeld-Formularsteuerelement mit dem Namen ein, den Sie gerade für den Eingabebereich erstellt haben.

So weit, so gut. Die Combobox funktioniert, aber neue Optionen, die am unteren Ende der vertikalen Liste hinzugefügt werden (sogar direkt unter dem benannten Bereich), werden nicht zur Dropdownliste hinzugefügt; der benannte Bereich, auf dem die Dropdownliste basiert, wird nicht dynamisch erweitert.

Und jetzt zum guten Teil.

  1. Gehen Sie zurück zu Ihrer vertikalen Liste (achten Sie darauf, dass Sie alles löschen, was Sie um den benannten Bereich herum hinzugefügt haben, damit er genauso aussieht wie in Schritt 2) und fügen Sie darüber eine Überschrift hinzu. Jeder beliebige Text ist geeignet, es ist nur eine Beschriftung zur Identifizierung Ihrer Auswahlliste.

(Oder tun Sie es nicht! Excel fügt im nächsten Schritt trotzdem eines für Sie hinzu, wenn Sie es zulassen.)

  1. Wählen Sie die Überschrift aus und drücken Sie Strg+T oder Einfügen | Tabelle. Akzeptieren Sie den von Excel gefundenen Bereich, aktivieren Sie das Kontrollkästchen „Meine Tabellen haben Überschriften“, und klicken Sie dann auf „OK“. Sie können den Namen der Tabelle ändern, wenn Sie möchten: Das ist egal.

(Hinweis: Wenn Sie keine Kopfzeile hinzugefügt haben, deaktivieren Sie das Kontrollkästchen „Meine Tabelle hat Kopfzeilen“, damit Excel eine für Sie erstellt.)

Da der ursprünglich benannte Bereich nun offenbar Teil einer Tabellendefinition ist, wird durch das Hinzufügen einer neuen Zeile am Ende Ihrer vertikalen Liste nicht nur automatisch die Tabellendefinition erweitert, sondern auch die des ursprünglich benannten Bereichs. Somit wird die neue Option in der Auswahlliste des Kombinationsfelds angezeigt. Zauberei!

Antwort2

Nicks Antwort zu XL 2013 ist in Ordnung, wenn Sie die Tabelle noch nicht erstellt haben.

Es geht aber auch einfacher. Sie definieren einen Namen, der auf die Tabellenspalte verweist. Erstellen Sie dann einen weiteren Namen, der auf den ersten Namen verweist. Sie können den zweiten Namen im Eingabebereich verwenden und es funktioniert einwandfrei.

Antwort3

In Excel 2010 ist dies möglich, allerdings handelt es sich dabei um einen zweistufigen Prozess.

  1. Erstellen Sie einen benannten Bereich mithilfe der strukturierten Tabellenreferenz (z. B. myrange=mytable[myColumn3].
  2. Verwenden Sie den benannten Bereich als Eingabebereich des Steuerelements.

Und wie zu erwarten, wird das Steuerelementfeld bei Änderungen an der Liste aktualisiert. Ich bin mir nicht sicher, warum Sie die Referenz nicht direkt im Steuerelement verwenden können, aber es gibt noch vieles an Excel, das ich nicht verstehe.

BEARBEITEN: Vergessen Sie nicht, das @-Symbol aus der Tabellenreferenz im Namensmanager zu entfernen, da Sie sonst nur den entsprechenden Zeilenwert für den Validierungssatz erhalten (z. B. [myColumn3] und nicht [@myColumn3]).

verwandte Informationen