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

标签 javascript google-apps-script google-sheets google-sheets-formula google-sheets-macros

所以我在 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/

相关文章:

google-apps-script - 将单元格引用传递给电子表格函数

javascript - 通过 AJAX 请求提交时显示未定义值的 Google 电子表格

javascript - jQuery - HTML 中的脚本标记由 jQuery 解析出来并且不执行

javascript svg 鼠标悬停效果

arrays - 使用不同长度的多个导入范围

javascript - Google Sheets - 从硬盘驱动器获取文件名并插入到工作表中 - (模拟 Excel Application.GetOpenFilename)

javascript - 空单元格导致代码中断 For 循环 - 从电子表格生成 Google 文档

javascript - angular 不会显示范围变量(完成)

javascript - Vue.js 下拉嵌套菜单(当子事件时保持父打开)

javascript - 将存储在文档属性中的数据返回到数组并推送到范围;气体