Javascript 如何将newDataValidation()代码块添加到我的Google应用程序脚本中

Javascript 如何将newDataValidation()代码块添加到我的Google应用程序脚本中,javascript,google-apps-script,google-sheets,google-sheets-formula,google-sheets-macros,Javascript,Google Apps Script,Google Sheets,Google Sheets Formula,Google Sheets Macros,因此,在OnEdit(e)触发器下有一块代码。我已经确定了范围,它正在工作。问题是我现在正试图在同一范围内使用apps脚本添加一些数据验证 我写了一段代码,但我不确定如何在所需范围内正确实现它。我目前使用的是onOpen(e),而且我也不确定它是否作用于正确的列,因为尽管REGEXMATCH表达式正确,但当我运行代码时,数据验证不起作用 任何帮助都将不胜感激!谢谢。我假设您希望更改背景色,并且仅对名为术语列表的工作表的列B应用数据验证。如果是这样的话: 创建数据验证的代码是正确的。现在,它应该

因此,在
OnEdit(e)
触发器下有一块代码。我已经确定了范围,它正在工作。问题是我现在正试图在同一范围内使用apps脚本添加一些数据验证

我写了一段代码,但我不确定如何在所需范围内正确实现它。我目前使用的是
onOpen(e)
,而且我也不确定它是否作用于正确的列,因为尽管REGEXMATCH表达式正确,但当我运行代码时,数据验证不起作用


任何帮助都将不胜感激!谢谢。

我假设您希望更改
背景色
,并且
仅对名为
术语列表
的工作表的
列B
应用数据验证。如果是这样的话:

  • 创建数据验证的代码是正确的。现在,它应该在您打开文件时创建一个新的数据验证。实际上,我不会将其包含在
    onOpen
    触发器中,因为您只需要创建一次数据验证,而不是每次打开文件时

  • 在下一行中,您将a与
    字符串
    进行比较,该字符串永远不会返回
    true
    。你应该申请这张表。这可能是您认为数据验证未正确插入的原因:

  • 您也在无缘无故地使用(此方法返回的范围就是应用此方法的范围,因为您没有偏移任何行或列)

  • 如果仅当图纸名称为
    TermList
    且编辑的列为B时才想更改背景,则应更改此项:

为此:

  if (sheet.getName() == 'TermList' && col == 2) {
    var color = e.value;
    range.setBackground(color);
  }

我希望这能有所帮助。

格式化内容
  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);
  }