我正在寻找可以添加到Google表格中的脚本,该脚本将自动生成电子邮件并在电子表格中包含某些字段。
我已经创建了一个Google表单,并将该数据发送到Google电子表格,这个想法是,当用户提交表单时,它将数据发送到电子表格,然后电子表格发送自动电子邮件。
我找到了该脚本并对其进行了一些编辑,但在第四行(var theEvent = e.values[1]
)上失败了:
function AutoConfirmation(e){
var theirFirst = "Bill";
var theirEmail = johndoe@example.com;
var theEvent = e.values[1];
var subject = "Form Submitted";
var message = "Thank you, " + theirFirst + " for the expressed interest in our " + theEvent;
MailApp.sendEmail (theirEmail, subject, message);
}
第4行不是从Google工作表的第1列中提取数据吗?这是一个旧的脚本,现在不起作用吗? 在我的Google工作表中,我以“网站”而不是“事件”作为列,而另一个以“完整”作为标题。 让我知道我在这里错过了什么,因为这似乎应该很简单。 我试图运行它,结果是:screenshot of the error I get 运行上面的代码时,我会遇到相同类型的错误,因此我认为我将运行记录器以查看是否获得任何结果,并且结果在屏幕截图中。单击链接以查看它。
答案 0 :(得分:0)
看来,您找到的脚本是要放入与Google电子表格绑定的Apps脚本项目中的函数,并由可安装的触发器调用。
第4行是否应该从Google工作表的第1列中提取数据?
不。 e.values
返回一个使用从零开始的索引的数组。这意味着第一列A的索引为0
。
答案 1 :(得分:0)
您得到的错误:
TypeError:无法读取未定义的属性“值”
表示事件对象(e
)未定义,这意味着您正在尝试手动运行此函数。触发事件附带的功能应该在发生相应的触发事件时运行:在这种情况下,用户提交表单时。您不必手动运行它。
function createOnFormSubmitTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger("AutoConfirmation")
.forSpreadsheet(ss)
.onFormSubmit()
.create();
}
AutoConfirmation
自动运行,并且包含these properties的事件对象作为参数传递。如果手动运行它,则e
是undefined
(没有将事件对象作为参数传递),并且会收到错误消息。e.values[1]
将检索提交表单时写入column B
的相同值,因为JavaScript数组的索引为零。您可能需要改用e.namedValues['yourProperty']
,以确保您正在检索所需的信息。