通过编程编辑触发onEdit触发器

时间:2016-05-22 02:41:06

标签: google-apps-script google-sheets event-triggers

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

为了确保第二个电子表格动态更新并与第一个电子表格同步,我尝试使用onEdit可安装触发器;但是,只有在我手动编辑电子表格1的情况下,它在编程编辑时才起作用。任何解决方案?

1 个答案:

答案 0 :(得分:2)

触发器不会触发脚本所做的电子表格更改。我认为这个想法是改变脚本也可以跟上这些变化的后果。在您的情况下,我看到三个解决方案:

  1. 如果您只想在另一个电子表格中显示电子表格的一部分&#34;,然后importrange命令就足够了,您就不需要脚本来执行此操作。< / p>

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

  3. 如果您确实想要在附加到另一个电子表格的脚本中触发某个功能,则可以运行基于时间的触发器来检查电子表格的上次更新时间。

  4. #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
      }
    }