首页 文章

如何在Google表格中创建基于时间的触发器

提问于
浏览
1

我想使用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 回答

  • 3

    基于时间的触发器与基于表单的触发器无关 . 基于工作表的触发器响应工作表上发生的事件,例如,如果您编辑单元格 .

    我会在您的代码段中删除forSpreadsheet调用,以解决您的问题 .

  • 0

    以编程方式创建电子表格触发器

    所以我想这里的问题是你希望将触发器绑定到电子表格 . 我相信只有这样做的方法是从电子表格包含的项目创建触发器,你可以使用ClockTriggerBuilder .

相关问题