一段时间以来,我一直在努力解决这个问题
我有两张excel表如下
Sheet1(主表)
Fruit | Fruit Type
---------------------
apple | ?????? <----- should have drop down list based on key value from Sheet2
apple | ?????? <----- should have drop down list based on key value from Sheet2
banana | ?????? <----- should have drop down list based on key value from Sheet2
apple | ?????? <----- should have drop down list based on key value from Sheet2
banana | ?????? <----- should have drop down list based on key value from Sheet2
Sheet2(水果类型)
Key | Value
---------------------
apple | Red Apple
apple | Organic Apple
apple | Green Apple
banana | African Banana
banana | Yemen's Banana
我想要sheet1(fruittype列)中的下拉列表,该列表应该基于Sheet2键值
我知道使用“数据验证”可以轻松完成下拉列表
但困难的部分是如何使这个下拉列表只显示基于键值的数据
1 回答
你需要使用VBA - 这是一种可以工作的方法(虽然我不确定它是最好的......)
1.将这样的函数添加到常规模块中
2.在"refersTo"
=GetFruitList()
(公式选项卡>>名称管理器)中为工作簿添加名称"FruitList"3.使用"Allow >> List"选项设置输入单元格的数据验证,并使用
=FruitList
设置"Source"这假设您的查找列表在Sheet2上(我在我的示例中使用了工作表代码,但您可以使用选项卡名称),并且列表在第一列上排序 .
它起作用(至少它对我有用!),因为函数
GetFruitList
在被点击的特定单元格的上下文中被调用 - 所以我们可以使用Application.Caller
来获取它,然后向左偏移一个单元格以找出我们需要为哪个类别项返回值 .