如何使每个功能在特定页面上运行?

时间:2019-07-01 09:10:47

标签: google-apps-script

我有两个名称相同的函数“ myFunction”,我在编辑时使用google trigers运行了它,并且我有两个表如何为使用此表的每个表指定一个函数,但它不起作用

 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Copy of Timesheet & Feedback");

//and on the other function


  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Visits");

1 个答案:

答案 0 :(得分:1)

问题:

getSheetByName()将返回您要查找的工作表,但与正在编辑以触发您的功能的工作表无关。


解决方案:

您可以为此使用事件对象。将整个脚本包装在if语句中,以检查工作表的名称。新功能应如下所示:

function myFunction(event) {
  var ss = event.range.getSheet();
  if (ss.getName() === "Copy of Timesheet & Feedback") {
    //your code here
  }
}

这样,如果找不到期望的工作表(if语句中的工作表名称),代码将不会继续。


注意:

请注意,函数myFunction(event)的名称很重要,“(事件)”很重要,因此我们可以访问事件对象以获取正在编辑的电子表格。

您将无法手动运行脚本,无法为“ on Edit”设置触发器,它将自动运行。


参考文献:

  1. Event Objects