MS Excel的条件数据验证

时间:2013-10-08 13:43:53

标签: excel excel-vba vba

我阅读了一些有助于条件(或动态)数据验证的教程,但它通常根据之前的选择动态生成列表项选择等。

我想要的是,让我说我有

columnA : columnB
telephone_number : 911
name: peterparker

我是否可以根据columnA中选择的内容在columnB上动态指定数据验证规则?如果是telephone_number,我想检查columnB中对应的单元格是自然数,如果是名称,我想检查一定长度的字符串。当然,我限制用户可以在columnA中输入的字符串选项。

2 个答案:

答案 0 :(得分:2)

关于自定义验证规则的以下公式将执行:

=IF(A1="telephone_number";ISNUMBER(B1);IF(A1="name";LEN(B1)=8;TRUE))

这是B1中单元格的示例。您可以选择更宽的范围并组合$以使您的公式适应所有范围。

答案 1 :(得分:0)

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

enter image description here

然后,如果我们定义一个名称,DynamicValidation如下:

enter image description here

验证框中的公式为

=EVALUATE(SUBSTITUTE(VLOOKUP(Sheet1!$A2,Sheet1!$D$2:$E$3,2,0),"()","("&ADDRESS(ROW(),2)&")"))

EVALUATE不能在任何表单元格中使用, 它可以在命名范围内使用。但是,您必须将图书保存为启用宏的图书,因为它是源自Excel 4.0的旧版宏。它的作用如下:

  • 查看List1中的值,找到需要检查的公式(VLOOKUP)。
  • 使用感兴趣的单元格值替换"()"(并添加括号)。

然后,如果您打开条件格式框(Home标签,Conditional FormattingNew RuleUse a formula to determine....)并输入公式=Not(DynamicValidation),如下所示:< / p>

enter image description here

然后每个不遵守公式的细胞将变为红色。我也尝试过使用数据验证,但除非我们每次更改List 2时都构建依赖树,否则它不起作用。我不知道为什么..但只有条件格式才有效:)以下是一些截图:

enter image description here

enter image description here

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

相关问题