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$2
die 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:
quelle
Antworten:
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.
quelle