我想使用Google Apps脚本在多个Google表格上安装基于时间的触发器,但无法弄清楚如何执行此操作 . 我知道这些可以通过UI添加,但我希望找到一种编程方式来实现这一点 . 我试过这段代码:
function initializeTrigger(sheetID){
var sheet = SpreadsheetApp.openById(sheetID);
ScriptApp.newTrigger('myLibrary.myFunction')
.forSpreadsheet(sheet)
.timeBased()
.atHour(9)
.everyDays(1)
.create();
}
function installMultipleTriggers(){
var sheetList = [sheetID1, sheetID2, sheetID3];
for (var i = 0; i < sheetList.length; i++)
{
initializeTrigger(sheetList[i]);
}
}
但是当我运行它时,我收到错误:
TypeError:在对象SpreadsheetTriggerBuilder中找不到函数timeBased .
我认为这是有道理的,因为根据documentation,SpreadsheetTriggerBuilder类没有名为timeBased()的方法...有谁知道如何将基于时间的触发器添加到多个Google表格?
2 回答
基于时间的触发器与基于表单的触发器无关 . 基于工作表的触发器响应工作表上发生的事件,例如,如果您编辑单元格 .
我会在您的代码段中删除forSpreadsheet调用,以解决您的问题 .
以编程方式创建电子表格触发器
所以我想这里的问题是你希望将触发器绑定到电子表格 . 我相信只有这样做的方法是从电子表格包含的项目创建触发器,你可以使用ClockTriggerBuilder .