尝试创建数据验证(绝对没有宏,这根本不是一个选项),用户只能输入基本字符(AZ,az,0-9,-,~,',\,/)所以我尝试做的是创建一个验证,检查某些字符,如果发现它们则弹出一条错误消息,所以我的数据验证公式如下。
=ISERROR(FIND("&",D17:D110))
其中 D17:D110 是将全部验证的单元格范围。因此,在用户输入其值后,如果他当前正在编辑的单元格包含“&”,则会引发错误。此方法效果很好。但是!我需要禁止多个字符,所以我尝试了。
=ISERROR((OR(FIND("&",D17:D110),FIND("^",D17:D110))))
这不仅对“^”不起作用,还会破坏查找“&”。
所以我需要一种方法来
- 阻止允许多个字符
- 仅允许上面列出的字符。
警告:由于公式的添加方式(.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 表示找到 ^,我相信您可以看到其中的逻辑