我有一个包含一系列线性比例问题的表格。提交到一张表格,我想要得到他们的答案总数,如果数字是40或以上,请发送电子邮件" A"如果是39或以下,他们会收到电子邮件" B"。
有没有办法在提交表单时在新创建的行中汇总列B:G,从H列获取用户的电子邮件地址,并使用B:G的总和来确定发送的电子邮件?
我已经多次浏览App Script文档,但似乎无法成功运行并运行。
编辑添加到达此处的位置(意识到它目前毫无价值):
function onFormSubmit(e){
var emailSubject;
var row = 1;
var messageCore;
var newUserEmailSent = "NO";
var EMAIL_SENT = "YES";
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var lastRowUsed = getFirstEmptyRowByColumnArray() -1;
function getFirstEmptyRowByColumnArray() {
var spr = SpreadsheetApp.getActiveSpreadsheet();
var column = spr.getRange('A:A');
var values = column.getValues();
lastRowUsed.setFormula("=SUM(B1:G1)");
}
}
答案 0 :(得分:0)
你开了个好头。请查看“on form submit”触发器返回的event object。由于该对象包含所有响应数据,因此您实际上不需要阅读工作表中的内容。具体来说,请注意values
属性,该属性包含一个数组(答案)的数组,其顺序与电子表格中显示的顺序相同。
您可以使用这些值完成所有求和和控制流(超过或低于40)。然后,您可以使用MailApp发送相应的电子邮件。
查看此示例并进行所需的任何调整。
function onFormSubmit(formResponse){
var sum = 0;
for (var i = 1; i <= 6; i++) { // Column B = 1, Column G = 6
sum = sum + Number(formResponse.values[i]);
}
var emailAddress = formResponse.values[7]; // This is the value that will be in Column H
var yourEmailAddress = "me@example.com"; // Will be used in the BCC field, in case you want to receive the emails too
if (sum >= 40) {
var emailASubject = "Email A Subject";
var emailABody = "Email A Body";
MailApp.sendEmail(emailAddress, emailASubject, emailABody, {bcc: yourEmailAddress});
} else {
var emailBSubject = "Email B Subject";
var emailBBody = "Email B Body";
MailApp.sendEmail(emailAddress, emailBSubject, emailBBody, {bcc: yourEmailAddress});
}
}
我认为您的表单回复已经保存到您的电子表格中(这是一项要求),但请不要忘记install the trigger,如下图所示。