Google apps script 如何在多个Google工作表中创建基于时间的触发器
我想使用谷歌应用程序脚本在多个谷歌工作表上安装一个基于时间的触发器,但我不知道怎么做。我知道这些可以通过UI添加,但我希望找到一种编程方式来实现这一点。我尝试过以下代码:Google apps script 如何在多个Google工作表中创建基于时间的触发器,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想使用谷歌应用程序脚本在多个谷歌工作表上安装一个基于时间的触发器,但我不知道怎么做。我知道这些可以通过UI添加,但我希望找到一种编程方式来实现这一点。我尝试过以下代码: function initializeTrigger(sheetID){ var sheet = SpreadsheetApp.openById(sheetID); ScriptApp.newTrigger('myLibrary.myFunction') .forSpreadsheet(sheet) .tim
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]);
}
}
函数初始化器(sheetID){
var sheet=电子表格应用程序openById(sheetID);
ScriptApp.newTrigger('myLibrary.myFunction')
.前页(第页)
.基于时间的()
.atHour(9)
.每天(1)
.create();
}
函数installMultipleTriggers(){
var sheetList=[sheetID1,sheetID2,sheetID3];
对于(变量i=0;i
但当我运行此命令时,我收到错误:
TypeError:在对象SpreadsheetTriggerBuilder中找不到基于时间的函数
我想这是有道理的,因为根据,SpreadsheetTriggerBuilder类没有名为timeBased()的方法。。。有人知道如何将基于时间的触发器添加到多个Google工作表中吗?以编程方式创建电子表格触发器
因此,我想这里的问题是,您希望将触发器绑定到电子表格。我认为唯一的方法是从电子表格中包含的项目创建触发器,您可以使用ClockTriggerBuilder。基于时间的触发器独立于基于工作表的触发器。基于工作表的触发器响应工作表上发生的事件,例如,如果编辑单元格
我将在您的代码段中删除ForPreadSheet调用,这将解决您的问题。此代码将在当前电子表格上创建触发器,但我正在尝试在多个电子表格上安装触发器。这将使代码运行,但触发器将仅应用于当前电子表格。我想将触发器应用于多个电子表格。@PatrickDoyle您需要将要修改的表格收集到一个数组中,然后在其上循环,并在运行时以增量方式添加基于时间的触发器。您应该查看数组和循环。