我对 Google Apps 脚本比较陌生,并且一直在使用我大约一年前创建的一个非常简单的脚本,当用户通过 Google 表单提交输入时触发该脚本。该脚本一直运行良好,直到大约今年五月,我一直在争先恐后地试图弄清楚当我没有对我的代码进行任何更改时发生了什么。我搜索了许多不同的地方,似乎找不到问题所在。
基本上,我有一个用户填写然后提交的表单。提交后,脚本从最近的行中获取输入并将它们存储在变量中,然后将这些变量组合成电子邮件消息确认,确认每个用户提交的输入。
这是我的代码:
function acknowledgement() {
var ActiveSheet = SpreadsheetApp.getActiveSheet();
var ActiveRow = ActiveSheet.getActiveRange().getRow();
var emailAddy = ActiveSheet.getRange("E"+ActiveRow).getValue();
var locvar = ActiveSheet.getRange("C"+ActiveRow).getValue();
var employeevar = ActiveSheet.getRange("B"+ActiveRow).getValue();
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Variables");
var contactvar = sh.getRange("A2").getValue();
var subject = sh.getRange("B2").getValue();
var contactvar2 = sh.getRange("C2").getValue();
var linebrk = "<br />";
var msg = "Dear " + employeevar + ","
+ linebrk + linebrk
+ "This confirms that you have completed your review of the latest security presentation."
+ linebrk + linebrk
+ "Your location number is " + locvar + "."
+ "Thank you very much for your participation."
+ linebrk + linebrk
+ contactvar;
var msghtml = '<p>'+msg+'</p>';
var advancedargs = {cc:contactvar2, htmlBody:msghtml};
MailApp.sendEmail(emailAddy, subject, msg, advancedargs);
}
当前发生的是我的代码不再获取当前行号(即用户刚刚提交的活动行)。相反,它只是抓取工作表的第一行(即我的行标题,如“员工姓名”、“电子邮件地址”等)并将这些行标题分配给变量,从而在尝试发送电子邮件确认时产生错误. 例如,我的变量 emailAddy 将包含导致 sendEmail 失败的“电子邮件地址”。
对于任何反馈,我们都表示感谢!