Zellenwert des Excel-Dropdown-Formularsteuerelements wird bei Listenänderung nicht aktualisiert

0

Ich habe ein Arbeitsblatt mit eingebetteten Combobox-Formularsteuerelementen (Dropdown-Listen), für die der Eingabebereich ein dynamischer benannter Bereich ist (Dropdown-Liste nicht für die Überprüfung).

Wenn sich der Bereich ändert, werden die in der Dropdown-Liste aufgeführten Werte entsprechend geändert, der verknüpfte Zellenwert wird jedoch nicht aktualisiert, selbst wenn der angezeigte Wert in der Dropdown-Liste geändert wird.

Die Arbeitsmappe sollte makrofrei sein, daher kann ich mit VBA keine Aktualisierung des Zellenwerts erzwingen.

Meine Internetsuche scheint darauf hinzudeuten, dass dies unmöglich ist, aber ich habe möglicherweise etwas verpasst.


Bearbeiten:

Die Arbeitsmappe enthält keinen externen Inhalt und keine Links. Daher hilft es nicht, den externen Link zu aktualisieren.

Die benannten dynamischen Bereiche sind alle intern, beispielsweise kann sich ein benannter Bereich (Choice_List) auf ihn beziehen =OFFSET(Test!$A$2:$A$11;0;0;Test!$B$2).

Wenn die Zelle Test!$B$2die angezeigte Liste ändert, ändert sich dies entsprechend. Wenn die neue Liste jedoch weniger Elemente als der aktuell ausgewählte Elementindex enthält, wird in der Dropdown-Liste das letzte Element der Liste angezeigt und der Wert der verknüpften Zelle ändert sich nicht.

Die Einstellungen:

Erstwahl:

Nach dem Ändern der maximalen Anzahl von Elementen:

Vincent G
quelle
Speichern Sie Ihre Arbeitsmappe als Macro-fähig und verwenden Sie VBA-Code, um Links zu aktualisieren, ganz einfach!
Rajesh S
2
Nun, wie gesagt, meine Arbeitsmappe sollte makrofrei sein.
Vincent G
Muss die verknüpfte Zelle verschoben werden, wenn sich der Eingabebereich ändert?
Mark Fitzgerald
@ VincentG, ja, ich weiß, dass Sie versuchen, Makro zu vermeiden, aber in Ihrem Fall sollte ein Makro ein kluger Schachzug sein. Dieser einfache VBA-Code löst Ihr Problem ActiveWorkbook.RefreshAll !!
Rajesh S
@ MarkFitzgerald Nein, die verknüpfte Zelle muss sich nicht bewegen (na ja, das Bewegen würde andere Probleme verursachen)
Vincent G

Antworten:

1

Ich habe ein paar Nachforschungen angestellt und das sieht nach einem weiteren Micro $ oft-Fehler aus.

Der im DropDown-Objekt gespeicherte interne Wert, der der ComboBox entspricht, ändert sich korrekt in 2, aber die verknüpfte Zelle wird nicht mit dem neuen Wert aktualisiert.

Dies liegt anscheinend daran, dass weder der Benutzer noch ein VBA-Code den Wert geändert hat. Dies ist jedoch das Ergebnis einer "Korrektur" (von Excel selbst!), Die erforderlich ist, um den Wert nach dem Verkleinern der Liste wieder in einen gültigen Bereich zu bringen.

Nichts, was ich versucht habe, konnte ein Update erzwingen, nicht einmal manuell (außer natürlich einen anderen Wert aus der ComboBox auszuwählen).

Die einzige Lösung ist die Verwendung von VBA. Am besten erstellen Sie ein Add-In, das den Code enthält. Auf diese Weise enthält die Arbeitsmappe selbst kein Makro.

robinCTS
quelle
Ja, das, was ich befürchtet habe ...
Vincent G
@ VincentG Nur die mögliche Lösung geklärt. Ist die Installation eines Add-Ins eine akzeptable Option?
robinCTS
Es ist nicht wirklich zu erwarten, dass die Arbeitsmappe in Unternehmen verteilt wird, in denen die Ausführung von Code sehr eingeschränkt ist.
Vincent G
@VincentG Die einzige andere Option, die mir in den Sinn kommt, ist die Überprüfung der Formel auf die Gültigkeit des Werts in der verknüpften Zelle. Wie setzen Sie den Wert ein?
robinCTS
Ja, ich kann zumindest eine Warnung für den Benutzer anzeigen, aber manchmal wird die Auswahlliste auf nur 1 Auswahl reduziert, und der Benutzer kann dann nicht einmal die aktuell angezeigte Auswahl auswählen :(
Vincent G