使用本教程脚本:https://developers.google.com/apps-script/articles/sending_emails
我是应用程序脚本的新手,并一直在搜索试图解决这个问题的论坛...
我正在尝试使用电子表格中的其他列动态输入消息中的称呼。我认为这将是一个像这样的公式:
=“亲爱的”E2,+“我们的2018目录即将推出!你想要一份副本吗?”但是,我得到的错误是-ADD parameter1是文本而且它正在寻找数字 - (即使我发现它在另一个帮助区域使用引号来分隔单元格引用。)
所以我的问题:
1.是否可以对此脚本中的消息进行动态更改?或者我是否需要在消息列中使用另一个脚本来执行此操作?
2.如果我在电子表格和连接表单上运行多个脚本,我需要单独的脚本文件,或者只需要在同一文件上使用单独的块
谢谢!
答案 0 :(得分:0)
以下是该教程的脚本:
// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails2() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 3)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
var emailSent = row[2]; // Third column
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
var subject = "Sending emails from a Spreadsheet";
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
我相信你希望在信息部分的开头有一个单独的称呼。您似乎还希望将第5列用于该数据。
如果情况如此,那么您的消息将是这样的:
var message = Utilities.formatString('Dear %s\n%s',row[4],row[1]);
Reference
这也可以通过这种方式实现:
var message = 'Dear ' + row[4] + '\n' + row[1];
Reference
在任何一种情况下,您都会在第5列中放置一个名称,在第二列中放置其余的消息。如果您不想在电子邮件中使用html,请替换&#39; \ n&#39; (换行)
'<br />'
(换行符);
消息以行[4](第5列)中的saluation开头,消息的其余部分来自行[1],根据第2列的教程。
getValues()命令中的数据在数组中返回。数组索引从零开始,电子表格中的列从1开始。Reference
如果我误解了您的问题,请在下面的评论中寻求进一步的帮助。我很乐意帮助你。