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

那么如果我们定义一个名字,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
..我不知道为什么..但只有条件格式有效:) 以下是一些屏幕截图:


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