0

我构建了一个使用 onSubmit 触发器跟踪表单响应的电子表格。这很好用。然后我想在另一个电子表格上显示电子表格的一部分,并构建了一个执行此操作的脚本。

为了确保第二个电子表格动态更新并与第一个电子表格同步,我尝试使用 onEdit 可安装触发器;但是,只有当我手动编辑电子表格时,它才会在以编程方式编辑时不起作用 1. 有什么解决方案吗?

4

1 回答 1

3

触发器不会在脚本所做的电子表格更改时触发。我认为这个想法是,进行更改的脚本也可以遵循这些更改的任何后果。就您而言,我看到了三种解决方案:

  1. 如果您只想“在另一个电子表格上显示电子表格的一部分”,那么importrange命令就足够了,您不需要脚本来执行此操作。

  2. 表单提交触发的功能可以修改目标电子表格本身。为此,您需要在表单提交时运行可安装的触发器,因为简单的触发器无法访问其他电子表格。

  3. 如果您真的想在附加到另一个电子表格的脚本中触发函数,您可以运行基于时间的触发器来检查电子表格的最后更新时间。

#3 的示例:可以设置为每 5 分钟运行一次的功能,以检测任何类型的变化。

function checkForUpdates() {
  var updated = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()).getLastUpdated(); 
  if (new Date() - updated < 300000) {
    // updated in the last 5 minutes, do something
  }
}
于 2016-05-22T04:25:05.220 回答