【发布时间】:2016-11-23 05:06:56
【问题描述】:
每当用户向我的 Google 表格提交 Google 表单时,我都想触发 OnSubmit 函数,以使用表单字段中的电子邮件地址自动发送电子邮件回复,并计算提交的“正确/错误”数据验证.由于最新的表单提交数据进入工作表的最后一行,我尝试使用以下代码从工作表中提取这两个数据(即使我可以使用电子邮件地址的函数参数)。
我还设置了表单提交事件触发器和电子邮件授权。但是电子邮件似乎不起作用。如果设置为在表单提交时触发,我还需要在脚本编辑器中运行该功能吗?当我尝试单击运行时,代码超过了执行时间。
function OnSubmit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = sheet.getLastRow()-1;
var numRows = 1; // Number of rows altogether
// Fetch the range of cells A(last row):G(last row)
var dataRange = sheet.getRange(startRow, 1, numRows, 7);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[2]; // Column C of last row
var message = "";
while(row[6] === "") { // Delay until data verification is done
Utilities.sleep(10000);
}
var subject = row[6] // Column G (data verification cell) of last row
MailApp.sendEmail(emailAddress, subject, message);
}
}
【问题讨论】:
-
使用 Logger 跟踪您的执行情况
-
您能详细说明一下吗?这是我第一次尝试 Google Apps 脚本。我根据我在网上阅读的内容将代码放在一起。
-
您不能使用这部分代码:
while(row[6] === "") { // Delay until data verification is done Utilities.sleep(10000); }因为在脚本执行期间您的数据不会更新,因此如果函数为空时 row[6] 为空,则循环将始终是无限的调用。
标签: google-apps-script google-sheets google-forms