在使用以下教程脚本时:https://developers.google.com/apps-script/articles/sending_emails可以动态更改消息列吗?

时间:2017-10-24 15:12:14

标签: javascript google-apps-script email-integration

使用本教程脚本:https://developers.google.com/apps-script/articles/sending_emails

我是应用程序脚本的新手,并一直在搜索试图解决这个问题的论坛...

我正在尝试使用电子表格中的其他列动态输入消息中的称呼。我认为这将是一个像这样的公式:

=“亲爱的”E2,+“我们的2018目录即将推出!你想要一份副本吗?”但是,我得到的错误是-ADD parameter1是文本而且它正在寻找数字 - (即使我发现它在另一个帮助区域使用引号来分隔单元格引用。)

所以我的问题:

1.是否可以对此脚本中的消息进行动态更改?或者我是否需要在消息列中使用另一个脚本来执行此操作?

2.如果我在电子表格和连接表单上运行多个脚本,我需要单独的脚本文件,或者只需要在同一文件上使用单独的块

谢谢!

1 个答案:

答案 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

如果我误解了您的问题,请在下面的评论中寻求进一步的帮助。我很乐意帮助你。