在Google工作表脚本上使用onChange触发器

时间:2017-08-18 10:41:20

标签: google-apps-script google-sheets

我在google工作表脚本编辑器中运行脚本,使用特定功能触发我在当前项目触发器中使用onChange的脚本 - >来自电子表格 - >在改变。

重要的是,我使用工作表和另外3个具有编辑权限的成员来更改数据的时间,我构建了脚本并激活了触发器。

当我更改工作表中的任何内容时,我会收到警报(触发器已打开),但当其他成员更改数据时,触发器无效。

我在这里错过了什么?

感谢。

1 个答案:

答案 0 :(得分:0)

每个人都需要一个触发器

您可以将触发器管理添加到程序中,以便它们在项目中也有触发器。 isTrigger()函数确保您只为每个实例创建一个触发器。您可以找到文档here

function myTriggerSetup() 
{
  if(!isTrigger('functionName'))
  {
    ScriptApp.newTrigger('functionName').forSpreadsheet('Spreadsheet').onChange().create();  
  }
}

function isTrigger(funcName)
{
  var r=false;
  if(funcName)
  {
    var allTriggers=ScriptApp.getProjectTriggers();
    var allHandlers=[];
    for(var i=0;i<allTriggers.length;i++)
    {
      allHandlers.push(allTriggers[i].getHandlerFunction());
    }
    if(allHandlers.indexOf(funcName)>-1)
    {
      r=true;
    }
  }
  return r;
}