Javascript 复选框违反数据验证规则
我已经使用apps脚本生成了多个复选框(所有复选框都未勾选),所有复选框都使用相同的代码,但其中一些复选框在单击时会弹出一个弹出窗口,表示它们违反了数据验证规则(并且它们仍然未勾选)。我手动检查(在数据验证菜单中),它们都有相同的规则,如果我删除该规则,则不会发生任何更改Javascript 复选框违反数据验证规则,javascript,validation,google-apps-script,google-sheets,Javascript,Validation,Google Apps Script,Google Sheets,我已经使用apps脚本生成了多个复选框(所有复选框都未勾选),所有复选框都使用相同的代码,但其中一些复选框在单击时会弹出一个弹出窗口,表示它们违反了数据验证规则(并且它们仍然未勾选)。我手动检查(在数据验证菜单中),它们都有相同的规则,如果我删除该规则,则不会发生任何更改 var enforceCheckbox=SpreadsheetApp.newDataValidation();enforceCheckbox.requireCheckbox();enforceCheckbox.setAllo
var enforceCheckbox=SpreadsheetApp.newDataValidation();enforceCheckbox.requireCheckbox();enforceCheckbox.setAllowInvalid(false);enforceCheckbox.build();setDataValidation(enforceCheckbox)代码>
在我的脚本中,使用onEdit事件检查它们的所有值,但由于我甚至无法编辑它们的值,我怀疑这是否相关。结果表明,问题是受影响的单元格格式为纯文本。将格式设置为“自动”解决了此问题
多亏了我发现了通过代码添加复选框的简单方法,遗憾的是,这似乎没有在应用程序脚本参考页面上得到很好的记录
对于其他在这方面遇到困难的初学者,您可以使用以下方法添加复选框:
range.insertCheckboxes();
range.insertCheckboxes(checkedValue);
range.insertCheckboxes(checkedValue, uncheckedValue);
您可以通过以下操作删除复选框:
range.removeCheckboxes();
为什么不直接使用range.insertcheckbox()代码>