google-apps-script - 电子表格中特定工作表的 onEdit 触发器?

标签 google-apps-script google-sheets triggers

我在寻找有关如何设置 onEdit 触发器的好资源时遇到了麻烦。我有一个功能,我只想在编辑特定工作表时运行。例如,假设我有 Sheet1、Sheet2、Sheet3、Sheet4、Sheet5。我的脚本从工作表 2、3、4 中提取数据并填充工作表 1。我只希望我的脚本在有人编辑工作表 2、3 或 4 时运行。我将如何设置此触发器?

最佳答案

有多种方法可以实现这一点,每种方法都有自己的优点。您对每种情况都有特定的设置吗?您是否为每种情况运行不同的功能?等等

  • 使用 if 语句检查每个工作表的名称
    • if (name === "name 2"|| name === "name 3"|| ...) {/* 公共(public)代码 */...
  • 使用带有 case fall-through 的 switch 语句(或不通过 fall-through,允许基于工作表的特定设置)
    • switch (name) { case "name 2": ...
  • 使用数组来保存所需的“有效”工作表名称,并使用 .indexOf() 检查编辑后的工作表名称是否在数组中
    • var names = ["sheet 2 name", "sheet 3 name"... ];如果 (名称.indexOf(名称) { ...
  • 还有更多

在所有情况下,您都希望从事件对象中获取已编辑工作表的名称:

// My simple-trigger function that runs on edit:
function onEdit(eventObject) {
  if (!eventObject) {
    /* the function was run from the script editor */
    return;
  }
  var editedSheetName = eventObject.range.getSheet().getName();
  /* perform some sort of comparison to figure out if 'editedSheetName'
     is one we want to work on, and if so, do so. */
  ...

您应该查看 Javascript 语言引用资料(例如 Mozilla Developer Network 上的引用资料)以熟悉执行流程控制。

您可以在 Apps 脚本触发器文档中查看事件对象中可用的属性:https://developers.google.com/apps-script/guides/triggers/events

关于google-apps-script - 电子表格中特定工作表的 onEdit 触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49465608/

相关文章:

google-apps-script - 更新了 Google 表格中的 Google 日历事件

google-apps-script - 在多个工作表中搜索一个词

python - 如何在不提示授权我的脚本的情况下设置对 Google 表格的身份验证?

google-apps-script - 如何使用 OnChange() 触发器

带触发器的 Mysql 克隆 id

postgresql - 在 Postgres 触发器函数中调用异常之前执行操作

google-apps-script - Google 对通用主表的多种形式响应

google-apps-script - 如何使用谷歌应用程序脚本根据我在另一列上设置的条件从一列获取值?

javascript - 单击新窗口,在新窗口中更改元素

sql-server - 确保 MS SQL Server 数据库级别的数据正确