复制电子表格时不会复制触发器

时间:2015-01-23 11:17:52

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

复制Google电子表格时,触发器会丢失。我尝试打开但它不会在新副本上工作。有没有办法有问题地重新激活触发器?

function onOpen() {

 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var currentSheet = ss.getSheetByName("Invoice");
 
   //delete all previous triggers
  var allTriggers = ScriptApp.getScriptTriggers();
  // Loop over all triggers
  for(var i=0; i < allTriggers.length; i++)
      ScriptApp.deleteTrigger(allTriggers[i]);
  
   // Create onopen trigger using the Spreadsheet
  var onEditTrigger = ScriptApp.newTrigger("onOpen")
      .forSpreadsheet(ss)
      .onOpen()
      .create();
  
         // Create onedit trigger using the Spreadsheet

 var onEditTrigger = ScriptApp.newTrigger("onEdit")
      .forSpreadsheet(ss)
      .onEdit()
      .create();


}

1 个答案:

答案 0 :(得分:0)

您可以通过代码添加触发器,但它至少需要单击菜单(或图像按钮)才能使其生效。因为它需要新的授权确认。

此外,您在同一功能上混合了简单和可安装的触发器。这可能是一个错误。

你应该使用简单的触发器,它们是&#34; set&#34;只需命名函数onOpenonEdit即可。或者可安装的触发器,您可以在触发器菜单上添加(或通过代码,就像您正在做的那样)。

嗯......你可以同时拥有两者,但是同时触发相同的功能是没有意义的。