如何将 newDataValidation() 代码块添加到我的 Google 应用程序脚本中
How to add newDataValidation() code block into my Google apps script
所以我在 OnEdit(e)
触发器下有一段代码。我已经确定了范围并且它正在工作。问题是我现在正尝试在同一范围内使用应用程序脚本添加一些数据验证。
我写了一段代码,但我不确定如何在所需范围内正确实现它。我目前正在使用 onOpen(e)
并且我也不确定它是否作用于正确的列,因为当我 运行 代码时数据验证不起作用,尽管 REGEXMATCH 表达式是正确的。
如有任何帮助,我们将不胜感激!谢谢
我假设您只想将 background color
和 apply data validation
更改为名为 TermList
的 sheet 的 column B
。如果是这样的话:
创建数据验证的代码是正确的。就像现在一样,它应该在您打开文件时创建一个新的数据验证。实际上,我不会将此包含在 onOpen
触发器中,因为您只需要创建一次数据验证,而不是每次打开文件时。
在下一行中,您将 Sheet to a string
, something which can never return true
. You should apply getName 与 sheet 进行比较。这可能是您认为未正确插入数据验证的原因:
if(sheet != 'TermList' && col != 2) return
您也在无缘无故地使用 offset(0, 0)(此方法返回的范围是应用此方法的范围,因为您没有偏移任何行或列)。
如果你只想在sheet名称为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);
}
希望对您有所帮助。
所以我在 OnEdit(e)
触发器下有一段代码。我已经确定了范围并且它正在工作。问题是我现在正尝试在同一范围内使用应用程序脚本添加一些数据验证。
我写了一段代码,但我不确定如何在所需范围内正确实现它。我目前正在使用 onOpen(e)
并且我也不确定它是否作用于正确的列,因为当我 运行 代码时数据验证不起作用,尽管 REGEXMATCH 表达式是正确的。
如有任何帮助,我们将不胜感激!谢谢
我假设您只想将 background color
和 apply data validation
更改为名为 TermList
的 sheet 的 column B
。如果是这样的话:
创建数据验证的代码是正确的。就像现在一样,它应该在您打开文件时创建一个新的数据验证。实际上,我不会将此包含在
onOpen
触发器中,因为您只需要创建一次数据验证,而不是每次打开文件时。在下一行中,您将 Sheet to a
string
, something which can never returntrue
. You should apply getName 与 sheet 进行比较。这可能是您认为未正确插入数据验证的原因:
if(sheet != 'TermList' && col != 2) return
您也在无缘无故地使用 offset(0, 0)(此方法返回的范围是应用此方法的范围,因为您没有偏移任何行或列)。
如果你只想在sheet名称为
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);
}
希望对您有所帮助。