数据验证的替代方法是条件格式。后者的好处是它更通用。我们可以有以下设置:

那么如果我们定义一个名字,DynamicValidation如下:

验证框中的公式是
=EVALUATE(SUBSTITUTE(VLOOKUP(Sheet1!$A2,Sheet1!$D$2:$E$3,2,0),"()","("&ADDRESS(ROW(),2)&")"))
EVALUATE不能在任何工作表单元格中使用,但可以在命名范围中使用。但是,您必须将您的图书保存为启用宏,因为它是一个旧版宏,源自Excel 4.0. 它的作用如下:
- 查看中的值
List1并找到需要检查的公式 ( VLOOKUP)。
- 用感兴趣
"()"的单元格值替换(并加回括号)。
然后,如果您打开一个条件格式框(Home选项卡Conditional Formatting、、、、New Rule)Use a formula to determine....并输入如下公式=Not(DynamicValidation):

那么每个不符合公式的单元格都会变成红色。我也尝试过数据验证,但它不起作用,除非我们每次更改时都构建依赖树List 2..我不知道为什么..但只有条件格式有效:) 以下是一些屏幕截图:


好处是我们可以在不进行硬编码的情况下更改验证标准。我希望这有帮助!