see image of spreadsheet here 示例:Google表格单元格只能允许输入“棕色”,“红色”,“绿色”等,并输入十六进制颜色代码,例如#03fca9。对于整个专栏,如何使用apps脚本来解决这个问题?任何帮助将不胜感激!
答案 0 :(得分:1)
您可以使用Apps脚本进行验证,但不必这样做。突出显示目标范围,选择“数据验证”->“自定义公式为”,然后输入以下公式:
=REGEXMATCH(A1,"([#0-9a-fA-F]){6}|green|red|blue|purple")
验证将基于公式是否为TRUE进行。我不是REGEX的专家,所以可能会有更好的选择来编写此表达式。例如,我的表达式不会拒绝空格等。缺点是您必须手动列出所有颜色别名。此外,该表达式仅根据图案测试用户输入-无法检查输入是否为有效颜色。
在代码中,您可以通过调用DataValidationBuilder类的此方法来构建规则并将其应用于范围
var range = SpreadsheetApp.getActive().getRange('A1:A');
var rule = SpreadsheetApp.newDataValidation().requireFormulaSatisfied('=REGEXMATCH(A1,"([#0-9a-fA-F]){6}|green|red|blue|purple")').build();
range.setDataValidation(rule);