在google表单响应的最后一行运行脚本

时间:2018-01-11 12:16:58

标签: google-apps-script

我是Google Apps脚本的新手,我正在努力尝试自动执行以前的手动过程。该脚本位于一张表格中,该表格采取表格回复,将其转换为文件,然后通过副本向受访者发送电子邮件。这是有问题的代码:

ServletContextListener

这是设置为在表单提交时触发,但不是在最后一行上运行脚本,它也为所有先前的响应运行。之前这种情况很好,因为将回复复制到单独的工作表并进行批量处理,但我对如何使其仅在新响应上运行感到迷茫。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

第8行;在这一行var data = sheet.getRange(2, 1, sheet.getLastRow()-1, sheet.getLastColumn()).getValues();中,您获得的范围为A2:无论最后一行和哪一列是什么,这都是为什么它会超越整个范围。

将其更改为var data = sheet.getRange(sheet.getLastRow()-1, 1, 1, sheet.getLastColumn()).getValues();应该有效。

或者您可以使用onFormSubmit事件的e参数。

var getSubmission = e.range.getValues();

查看e参数的documentation,调试时可能很难使用它,但是当你挂起它时它非常有用它的。