【问题标题】:How to set a time based trigger for a spreadsheet created from the script in another 'parent' spreadsheet如何为从另一个“父”电子表格中的脚本创建的电子表格设置基于时间的触发器
【发布时间】:2017-09-21 12:21:21
【问题描述】:

我有一个包含脚本的电子表格。 在这个脚本中,我创建了另一个电子表格,称为 TP。 我想在这个 TP 电子表格中设置触发器。 这对于 onopen 触发器来说很容易。

    ScriptApp.newTrigger("agendaCheck")
    .forSpreadsheet(TP)
   .onOpen()
   .create();

但是对于基于时间的触发器,我不能这样做。

     ScriptApp.newTrigger("agendaCheck")
     .forSpreadsheet(TP)
    .timeBased()
    .atHour(3)
    .everyDays(1) 
    .create();

这运行一个错误:can't find function timeBased in object SpreadsheetTriggerBuilder...

【问题讨论】:

  • 我正在考虑一种解决方法。我可以通过复制具有脚本的模板来创建 TP 电子表格。在这个本地脚本中,我放置了一个函数(makeTimeBaseTrigger)。然后我在运行 makeTimeBaseTrigger 函数的父电子表格中设置了一个 onopen 触发器。唯一的问题是我可能必须在它第一次运行时进行自动化......所以不好..

标签: google-apps-script triggers


【解决方案1】:

SpreadsheetTriggerBuilder 类只允许访问简单的触发器(onOpen()onEdit() 等)。你需要使用:

ScriptApp.newTrigger('myFunction')
   .timeBased()
   .atHour(3)
   .everyDays(1)
   .create();

并将myFunction 绑定到访问TP 电子表格的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多