列表更改时 Excel 下拉表单控件单元格值未更新

列表更改时 Excel 下拉表单控件单元格值未更新

我有一个嵌入了组合框表单控件(下拉菜单)的工作表,其中输入范围是一个动态命名范围(不是验证下拉菜单)。

当范围改变时,下拉列表中列出的值会相应修改,但即使下拉列表中显示的值被修改,链接的单元格值也不会更新。

工作簿应该是无宏的,所以我不能使用 VBA 强制刷新单元格值。

我的互联网搜索似乎表明这是不可能的,但我可能错过了一些东西。


编辑:

工作簿中没有外部内容,也没有链接,因此刷新外部链接没有帮助。

命名的动态范围全都是内部的,例如一个命名范围 (Choice_List) 可以引用=OFFSET(Test!$A$2:$A$11;0;0;Test!$B$2)

当单元Test!$B$2格改变时,显示的列表也会相应改变,但如果新列表包含的元素少于当前选定的项目索引,则下拉菜单将显示列表的最后一项,并且链接单元格的值不会改变。

设置:

初始选择:

更改最大项目数后:

答案1

我做了一些调查,这看起来像是另一个 Microsoft$oft 错误。

与 ComboBox 对应的 DropDown 对象中存储的内部值正确更改为 2,但链接的单元格未使用新值更新。

显然,这是因为用户或某些 VBA 代码都没有改变该值,而是由于列表本身缩小后需要将值恢复到有效范围内而进行的“校正”(由 Excel 本身进行!)。

我尝试的任何方法都无法强制更新,甚至手动也不行(当然,除了从 ComboBox 中选择不同的值)。

仅有的解决方案是使用 VBA。最好的选择可能是创建一个包含代码的插件。这样工作簿本身就不会包含宏。

相关内容