【问题标题】:Google docs spreadsheet event Timer not firingGoogle docs 电子表格事件计时器未触发
【发布时间】:2014-05-22 20:57:17
【问题描述】:

我尝试将一个非常基本的脚本(实际上它只是一个用于测试目的的 msgbox)应用于 google 电子表格事件计时器:

时间驱动---

分钟计时器 ---

每分钟

...但它没有执行。

我已将相同的脚本附加到 onOpen 和 onChange 事件中,这些都可以正常工作。

我过去(成功地)使用过计时器,所以这是另一个未宣布的已弃用功能,还是 ??????

【问题讨论】:

  • 想打赌你会在午夜左右收到一封电子邮件,报告一堆脚本失败,因为你不能在没有用户浏览器的情况下使用Browser 类? @patt0 建议的 Logger 的使用也会有问题,尽管没有失败。你应该看看BetterLog,它可以让你将你的日志记录到一个电子表格中——对于调试触发函数非常方便!
  • 是的......我的包罗万象的测试代码对于该特定应用程序是错误的。我的错。不是包罗万象。但这并不是说我花了几个小时将头撞在墙上试图弄清楚问题到底出在哪里。哦等等.....
  • 顺便说一句,如果这些电子邮件发生在失败时(而不是午夜),问题会立即解决。
  • 有趣的是你提到...它是in the documentation
  • 是的,我看到了。但我注意到,如果我删除(甚至重命名)脚本,我很快就会收到一封电子邮件,指出找不到该脚本;不必等到午夜才能通过电子邮件发布此类错误通知。顺便说一句,只是对此表示敬意:事实证明,在所有这些之后,我什至没有收到一封电子邮件。去图吧。

标签: google-apps-script google-sheets


【解决方案1】:

据我所知,脚本每小时都会触发一次,它的 Browser.MessageBox 不会触发。该脚本在执行时可能没有打开的电子表格的句柄,甚至没有浏览器的句柄。

如果您使用另一个测试,您应该会看到您的脚本被触发,例如:

function timerResponse(e) {
  Logger.log('Timer Fired');

  var cell = SpreadsheetApp.getActiveSheet().getRange(4, 4);
  cell.setValue(e);
}

【讨论】:

  • 哇...好叫我的屁屁。 MSGBOX 不会触发,因为没有用户响应就无法将其关闭。非常感谢!
猜你喜欢
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多