方案如下,
我有一个要在一个单元格中填充的选项列表,比如A1。可以使用Data Validation-List填充选项,这会导致下拉列表出现在A1中。现在我希望B1包含一个下拉列表,其中的条目根据A1中的数据进行更改。
作为一个受人尊敬的例子,假设A1提供哺乳动物,爬行动物和两栖动物的选择。如果我选择哺乳动物,我应该选择人,猫,狗作为B1的选项。如果我选择爬行动物,蛇和蜥蜴在B1中作为选项出现。如果我选择两栖动物,我应该得到青蛙和蟾蜍。
我想避免使用VBA。
答案 0 :(得分:6)
在验证列表中使用INDIRECT公式,如下所述:
答案 1 :(得分:0)
在这里,完全没有VBA的解决方案。它使用“表单”工具栏中的实际组合框控件:
=T(INDIRECT("data!R" & ROW() & "C" & DomainChoice; FALSE))
现在,“哺乳动物”,“爬行动物”,“两栖动物”应出现在方框1中,方框2的内容应根据选择进行更改。
查看各种表单,了解幕后发生的情况。唯一的要求是“域”表中的值的顺序对应于“数据”表上的列,并且只能是与“动物”表中填充有公式的行一样多的动物。
如果需要,您可以隐藏三个帮助工作表。
公式解释如下:
T( // returns an empty string unless the argument is a text value
INDIRECT( // returns the value at the given reference string
"data!R" // build a dynamic reference string to "data!R1C1"
&
ROW() // the current row, changes as you fill down the formula
&
"C"
&
DomainChoice // defined name of "domain!$B:$1", contains box 1 choice
;
FALSE // flag to indicate that the formula is in "R1C1" format
)
)