Excel 2007 自定义数据验证,排除大范围内的字符

Excel 2007 自定义数据验证,排除大范围内的字符

尝试创建数据验证(绝对没有宏,这根本不是一个选项),用户只能输入基本字符(AZ,az,0-9,-,~,',\,/)所以我尝试做的是创建一个验证,检查某些字符,如果发现它们则弹出一条错误消息,所以我的数据验证公式如下。

=ISERROR(FIND("&",D17:D110))

其中 D17:D110 是将全部验证的单元格范围。因此,在用户输入其值后,如果他当前正在编辑的单元格包含“&”,则会引发错误。此方法效果很好。但是!我需要禁止多个字符,所以我尝试了。

=ISERROR((OR(FIND("&",D17:D110),FIND("^",D17:D110))))

这不仅对“^”不起作用,还会破坏查找“&”。

所以我需要一种方法来

  1. 阻止允许多个字符
  2. 仅允许上面列出的字符。

警告:由于公式的添加方式(.NET OfficeOpenXml),我无法像在 Excel 中输入公式并拖动公式那样仅引用一个单元格本身。这是 API 的限制。这就是我找到一种使用整个范围的方法的原因。

答案1

这是因为它会在 OR 内部产生错误,导致 OR 无法求值。另外,您应该使用 AND。

尝试这个:

=AND(ISERROR(FIND("&",A1)),ISERROR(FIND("^",A1)))

使用 AND,因为如果未找到字符,ISERROR 将为 TRUE。

且(非 A,非 B)= 非(或(A,B))

因此,如果 A=true 表示找到 &,而 B=true 表示找到 ^,我相信您可以看到其中的逻辑

相关内容