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


0

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

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

该工作簿应该没有宏,因此我不能使用VBA强制刷新单元格值。

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


编辑:

工作簿中没有外部内容,也没有链接,因此刷新外部链接无济于事。

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

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

设置:

初始选择:

更改最大项目数后:


将您的工作簿保存为启用宏并使用VBA代码刷新链接,简单!
Rajesh S

2
嗯,正如我所说,我的工作簿应该是无宏的。
文森特·G

链接的单元格是否需要随着输入范围的变化而移动?
马克·菲茨杰拉德'18

@VincentG,是的,我知道您正在尝试避免使用Macro,但是在您的情况下,使用Macro应该是明智之举。这个简单的VBA代码将解决您的问题ActiveWorkbook.RefreshAll
Rajesh S

@MarkFitzgerald Nope,链接的单元不需要移动(嗯,移动它会导致其他问题)
Vincent G

Answers:


1

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

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

显然,这是因为用户和某些VBA代码都没有更改该值,而是由于在列表本身缩小后将值带回到有效范围内而需要进行“更正”(通过Excel本身!)。

我尝试过的所有操作都无法强制进行更新,甚至无法手动进行(当然,除了从ComboBox中选择其他值之外)。

唯一的解决方案是使用VBA。最好的选择可能是创建一个包含代码的加载项。这样,工作簿本身就不包含宏。


是的,那是我所担心的...
文森特·G

@VincentG刚刚阐明了可能的解决方案。是否可以安装外接程序?
robinCTS

并非如此,该工作簿预计将在代码执行受到严格限制的公司中分发。
文森特·G

@VincentG我唯一想到的另一个选择是对链接单元格中值的有效性进行公式检查。您如何使用该值?
robinCTS

是的,我至少将能够向用户显示警告,但是有时选择列表会减少为仅一个选择,然后用户甚至无法选择当前显示的选择:(
Vincent G
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.