这可能是由于在代码中有引用已删除 Trigger 导致的。为避免这种情况,需要在删除触发器时在代码中同时删除对触发器的引用。以下是一个示例代码,为您演示如何删除触发器及其引用:
function createTrigger() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
ScriptApp.newTrigger("myFunction")
.timeBased()
.everyMinutes(10)
.create();
sheet.getRange("A1").setValue("Trigger created");
}
function deleteTrigger() {
var allTriggers = ScriptApp.getProjectTriggers();
for(var i = 0;i < allTriggers.length;i++){
var currTrigger = allTriggers[i];
if(currTrigger.getHandlerFunction() == "myFunction"){
ScriptApp.deleteTrigger(currTrigger);
break;
}
}
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
sheet.getRange("A1").setValue("Trigger deleted");
}
在代码中,我们使用getProjectTriggers()
函数获取项目中的所有 Trigger,遍历每一个 Trigger,并找到我们想要删除的 Trigger,然后使用deleteTrigger()
函数删除此 Trigger。在删除完 Trigger 后,我们在 Sheet1 的 A1 单元格中设置一个信息,以确认触发器已成功删除。