复制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();
}
答案 0 :(得分:0)
您可以通过代码添加触发器,但它至少需要单击菜单(或图像按钮)才能使其生效。因为它需要新的授权确认。
此外,您在同一功能上混合了简单和可安装的触发器。这可能是一个错误。
你应该使用简单的触发器,它们是&#34; set&#34;只需命名函数onOpen
和onEdit
即可。或者可安装的触发器,您可以在触发器菜单上添加(或通过代码,就像您正在做的那样)。
嗯......你可以同时拥有两者,但是同时触发相同的功能是没有意义的。