Excel VBA 中基于条件的数据验证

Excel VBA 中基于条件的数据验证

我想知道是否可以仅根据条件显示数据验证列表中的项目?

例如,如果我在单元格 A1 中输入 AAA,则单元格 B1 中的数据验证列表将仅显示其相邻单元格上的内容,例如 1,2,3;或者如果我在单元格 A1 中输入 BBB,则单元格 B1 中的数据验证列表将仅显示其相邻单元格上的内容,例如 4,5,6?

这里的问题是,写入单元格 A1 的字符串是动态的。例如,今天我有 50 个选项要放入单元格 A1,所有这些选项都有自己的命名范围,以显示在单元格 B1 中的数据验证列表中,那么明天就只能有 20 个选项了。

此外,这些命名范围内的项目数量也会有所不同。

有任何想法吗?

谢谢

我还在此处发布了一个可以附加示例文件的内容:http://www.vbaexpress.com/forum/showthread.php?67237-Data-Validation-based-on-Condition(s)-in-Excel-VBA&p=401358#post401358

例如:

https://i.stack.imgur.com/jBYYQ.png在此处输入图片描述

1

答案1

您可以将此公式用作命名范围,您可以在 E3 中键入搜索词,它将识别包含输入文本的 A 列中的范围(例如 A10:A15 包含 AAA)并将返回 B 列中的匹配范围(例如:B10:B15)。

=INDIRECT("$B$"&MATCH($E$3,INDIRECT("$A$1:$A$"& COUNTA($A:$A)),FALSE)&":$B$"& MATCH($E$3,INDIRECT("$A$1:$A$"& COUNTA($A:$A)),FALSE) + COUNTIF(INDIRECT("$A$1:$A$"& COUNTA($A:$A)),$E$3)-1)

将公式作为命名范围放入后,请使用“数据验证”中的列表函数来引用该命名范围。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容