Google Apps脚本onEdit会触发电子表格中的特定工作表吗?

时间:2018-03-24 14:07:20

标签: google-apps-script google-sheets triggers

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

1 个答案:

答案 0 :(得分:1)

有多种方法可以实现这一目标,每种方法都有自己的优点。您是否针对每个案例进行了具体设置?你是否为每个案件运行不同的功能?等

  • 使用if语句检查每个工作表的名称
    • if (name === "name 2" || name === "name 3" || ...) { /* common code */ ...
  • 使用带有案例漏洞的switch语句(或者不允许通过,允许根据工作表进行特定设置)
    • switch (name) { case "name 2": ...
  • 使用数组来保存所需的"有效"工作表名称,并检查编辑的工作表名称是否在.indexOf()的数组中
    • var names = ["sheet 2 name", "sheet 3 name" ... ]; if (names.indexOf(name) { ...
  • 以及其他

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

// 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