在Excel 2010中为动态级联验证列表设置默认值


11

我终于弄清楚了如何使用数据验证和INDIRECT函数在Excel中构建一组动态级联列表。但是,我遇到了一个问题。

我想设置电子表格,以便每当对数据验证列表进行更改时,所有后续列表都设置为默认值。例如:

假设我有List1,List2,List3和List4。每个列表的值取决于在列表之前所做的选择。启动电子表格时,我希望所有列表都默认为“ ALL”。当用户在List1中选择一个值时,List2将使用一组有效的选项进行更新。我想将List2默认为这些选项之一。但是,虽然我可以使用正确的选择选项集填充List2,但无法将期望的默认值分配给它。

同样,如果用户在List1,List2和List3中进行选择,然后返回并更改List1,我希望将List2-List4的默认值恢复为“ ALL”。

我该怎么做呢?


3
这是VBA worksheet_change事件触发器的一项工作。我现在没有时间提供详细信息(如果您仍然需要帮助,我会在以后提供),但这是您应该指导研究的地方。
Excellll 2011年

您现在可能已经解决了这个问题,或者已经放弃了。我同意Excellll的观点,认为工作表更改事件可能是最简单的。但是,使用“数据验证”的“列表”选项,源可以是诸如的表达式=IF(A1="List1",C1:C5,D1:D4)。我已经使用从列表中选择的单元格A1的值进行了测试,它确实可以按照您的方式工作。
托尼·达利摩

您还在遇到这个问题吗?
Tamara Wijsman'4

仅供参考,我针对此问题采用的nonVBA方法是对后续单元格应用条件格式,以检查其所保存的当前值是否与当前INDIRECT()引用范围内的值匹配。如果不是,则该单元格变成红色,或者该值消失(匹配字体/背景),因此用户知道必须更新/重新选择该单元格的值。
杰里·博卡雷

为了说明我上面提到的VBA方法和CF方法,这里有一个示例文件 DependentLists3.xls
Jerry Beaucaire 2012年

Answers:


1

我针对此问题采用的nonVBA方法是将CONDITIONAL格式应用于后续单元格,以检查其所保存的当前值是否与当前INDIRECT()引用范围内的值匹配。如果不是,则该单元格变为红色,或者该值消失(匹配字体/背景),因此用户知道必须更新/重新选择该单元格的值。

为了说明这一点(以及上面其他人提到的VBA方法),这里有一个示例文件。您想要的文件是DependentLists3.xls

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.