【发布时间】:2020-08-15 09:42:43
【问题描述】:
我正在尝试设置一个脚本,以在每次将新行添加到我的 google 表格工作表中时发送电子邮件。该工作表当前已连接到我的 Google 表单。
但是,我无法保存此代码,因为错误显示为 SyntaxError: Invalid or unexpected token (line 11, file "Email.gs"。
我已经尝试了好几次,但无法找出问题所在。 非常感谢您对这个脚本的帮助,谢谢。
function sendEmail() {
//setup function
var ActiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (ActiveSheet.getName() == 'FORM' ) {
var StartRow = 2;
var RowRange = ActiveSheet.getLastRow() – StartRow + 1;
var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,17);
var AllValues = WholeRange.getValues();
var message = "";
//iterate loop
for (i in AllValues) {
//set current row
var CurrentRow = AllValues[i];
//set HTML template for information
message +=
"<p><b>Entered: </b>" + CurrentRow[1] + "</p>" +
"<p><b>Timestamp: </b>" + CurrentRow[2] + "</p>" +
"<p><b>Name: </b>" + CurrentRow[3] + "</p>" +
"<p><b>ID No.: </b>" + CurrentRow[4] + "</p>" +
"<p><b>Contact: </b>" + CurrentRow[5] + "</p>" +
"<p><b>Address: </b>" + CurrentRow[6] + "</p>" +
"<p><b>Temperature: </b>" + CurrentRow[7] + "</p>" +
"<p><b>Check In Date: </b>" + CurrentRow[8] + "</p>" +
"<p><b>Room Number: </b>" + CurrentRow[9] + "</p>" +
"<p><b>Bank Details: </b>" + CurrentRow[10] + "</p>" +
"<p><b>Symptoms: </b>" + CurrentRow[11] + "</p>" +
"<p><b>Contact: </b>" + CurrentRow[12] + "</p>" +
"<p><b>Agree to SOP: </b>" + CurrentRow[13] + "</p>" +
"<p><b>Declaration: </b>" + CurrentRow[14] + "</p>" +
"<p><b>Full Name: </b>" + CurrentRow[15] + "</p>" +
"</p><br><br>";
}
}//For loop close
//define who to send emails to
var SendTo = "myemail@email.com";
//set subject line
var Subject = "New Form";
//send the actual email if message is not empty
if (message) {
MailApp.sendEmail({
to: SendTo,
subject: Subject,
htmlBody: message,
});
}//if message
}//if sheetName Review
}//End Func
【问题讨论】:
-
使用单引号或双引号。或者如果您要使用模板字符串,请使用反引号。
“或“不是有效的语法,您从哪里得到使用它们的想法?回复:message连接 - hadouken! -
感谢您的回复。我刚刚更正了双引号错误,可能是由于我之前使用的文本编辑器造成的。运行后,在第 11 行仍然显示相同的错误。想知道上面的脚本还有什么问题?
-
也许,改用 IDE(如 VS Code 或即将更新的 Web IDE)。它会拯救你。除了您在全局范围内声明了
i(因为它缺少声明)之外,别无他法。第 11 行是什么? -
在此处复制和粘贴时,
ActiveSheet.getLastRow() – StartRow + 1包含一个 En Dash 字符(代码 8211),它不是有效的 JavaScript 运算符,您的意思是使用连字符(代码 45)。这很可能是通过使用 WYSIWYG 文本编辑器而不是纯文本编辑器插入的。正如 Oleg 建议的那样,这可以通过在在线脚本编辑器中输入(而不是复制/粘贴)或使用纯文本编辑器(如 VS Code、vi、nano 等)来解决。 -
您是否在博客、论坛或类似地方找到了原始代码?您的代码的来源是什么(添加链接)?你用的是什么IDE?
标签: google-apps-script google-sheets syntax-error