所以我在 OnEdit(e)
触发器下有一段代码。我已经确定了范围并且它正在工作。问题是我现在正尝试在同一范围内使用应用程序脚本添加一些数据验证。
我写了一段代码,但我不确定如何在所需范围内正确实现它。我目前正在使用 onOpen(e)
并且我也不确定它是否作用于正确的列,因为尽管 REGEXMATCH 表达式是正确的,但当我运行代码时数据验证不起作用。
任何帮助将不胜感激!谢谢。
最佳答案
我假设您想要更改 背景颜色
并且应用数据验证
仅对名为 的工作表的
。如果是这样的话:column B
>术语表
创建数据验证的代码是正确的。就像现在一样,它应该在您打开文件时创建一个新的数据验证。实际上,我不会将此包含在
onOpen
触发器中,因为您只需要创建一次数据验证,而不是每次打开文件时都创建。在下一行中,您正在比较 Sheet到一个
string
,它永远不会返回true
。你应该申请 getName到工作表。这可能是您认为未正确插入数据验证的原因:
if(sheet != 'TermList' && col != 2) return
您还在使用 offset(0, 0)无缘无故(此方法返回的范围是应用此方法的范围,因为您没有偏移任何行或列)。
如果您只想在工作表名称为
TermList
且编辑的列为 B 时更改背景,那么您应该更改为:
if(sheet != 'TermList' && col != 2) return;
var color = e.value;
range.offset(0, 0).setBackground(color);
对此:
if (sheet.getName() == 'TermList' && col == 2) {
var color = e.value;
range.setBackground(color);
}
希望对您有所帮助。
关于javascript - 如何将 newDataValidation() 代码块添加到我的 Google 应用程序脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59178217/