Excel 2007 与 Excel 2010:使用命名范围和 INDIRECT 函数的数据验证值

Excel 2007 与 Excel 2010:使用命名范围和 INDIRECT 函数的数据验证值

我在 Excel 中遇到了一个奇怪的错误,希望有人能帮助我解决。

我有一个在 Excel 2010 中创建的启用宏的工作簿。工作簿上有一系列单选按钮。选中单选按钮后,我会使用选定的值填充电子表格另一部分的数据验证列表。例如,我选择“Division 1”的单选按钮,这会填充特定于 Division 1 的区域列表,依此类推。

每组区域都有一个命名范围。数据验证列表使用 INDIRECT 公式根据所选的单选按钮替换范围名称。

这在 Excel 2010 中运行良好。但是,当我在 Excel 2007 中运行同一个文件时,验证单元中没有显示下拉列表。我已按照 Contextures 博客中概述的有关验证列表中下拉列表消失的所有故障排除步骤进行操作,但这些步骤均未解决问题。

对于可能发生的事情有什么想法吗?

答案1

不要直接在数据验证框中输入 Indirect() 函数,而是使用以间接函数为参考的命名范围来规避。这应该可以解决问题。

答案2

mtone - 感谢您的回复。我遇到的问题部分在于我没有意识到 Excel 在 2007 和 2010 中处理数据验证的方式会有所不同。我以为兼容性检查会发现这个问题。显然没有。

问题是我使用了间接引用,引用的单元格与数据验证下拉列表不在同一工作表上。显然在 Excel 2010 中可以这样做。在 Excel 2007 中,这是不允许的,数据验证下拉列表会重置。当您不使用 Excel 2007 时,调试起来非常烦人且令人沮丧。

相关内容