这是一个两部分的问题:
- 我有带有链接表格的谷歌表格。提交表单后,我希望将表单中的响应复制到另一个谷歌表格,我打算在其中更改和重新格式化,然后通过电子邮件发送。下面的脚本是我目前编写的,它在FormSubmit 上设置了一个触发器。但是,我不断收到以下错误:
TypeError:无法从未定义中读取属性“值”。(第 7 行,文件“代码”)
下面的代码:
function formSubmitReply(e)
{
var t = "1g-wIs6nGxu3mJYA1vKtPCxBLCsvh1upeVGbCokOOTIw";
var tName = "AggregationOutput";
//Get information from form and set as variables
var email = e.Values[2];
var name = e.Values[3];
// Get template, copy it as a new temp, and save the Doc’s id
var tcopyId = SpreadsheetApp.openById(t).copy(tName+' for '+name).getId();
// Open the temporary document & copy form responses into template copy response sheet
var copyt = SpreadsheetApp.openById (tcopyId);
var copyts = copyt.getSheetByName('Resp');
// Transfers Data from Form Responses to Temporary file
copyts.getRange('A3').setValue(name);
//Sends copy of template in an email as an excel file
var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + copyt.getId();
var subject = 'Aggregaton Output for' + name;
var body = url
MailApp.sendEmail(email, subject, body);
// Deletes temp file
DriveApp.getFileById(tcopyId).setTrashed(true);
}
- 我的问题的第二部分,即使我可以让代码工作,当在表单中跳过问题时,你会推荐什么 - 这不会改变 e.values 中的数组。使用最后一行作为问题的问题是我希望人们返回并编辑表单上的回复,然后重新提交,这意味着最后一行并不总是使用的行。
任何和所有的帮助表示赞赏。