通过电子邮件

时间:2017-05-31 08:58:51

标签: excel email google-apps-script google-sheets

道歉,因为我知道这已被问过几次,这是我从其他问题中学到的,但是我仍然坚持并且不确定如何继续。

我试图制作一个谷歌脚本,根据单元格更改向多个人发送电子邮件通知,同时在同一行中发送电子邮件中的多个单元格值?

e.g。如果列' C'更改,我可以发送一封电子邮件,其中包含来自列' A'和' B'在列' C'?

中的更改的同一行中

这是我一直试图解决但不确定如何添加多个电子邮件的脚本,以及来自另外两个单元格的值。

function sendNotifications() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = email@domain.com";
var message = '';
var cellA = ''
if(cell.indexOf('B')!=-1){ 
message = sheet.getRange('A'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to '+sheet.getName();
var body = + cellvalue + '». For message: «' + message + '»';
MailApp.sendEmail(recipients, subject, body);
};

1 个答案:

答案 0 :(得分:1)

下面的代码检查编辑的单元格是否在C列中,如果满足条件,则从编辑的行中获取A列和B列的值。在Google Apps脚本中,onEdit()是内置函数,当您在电子表格中进行更改时,该函数会自动触发。 'e'参数表示您可以检查的事件对象,以获取有关事件发生的上下文的更多详细信息

function onEdit(e){

  var editRange = e.range; // e is the event object generated by the Edit event
  var editRow = editRange.getRow();   // get row and column for the edited cell
  var editCol = editRange.getColumn();


  var sheet = SpreadsheetApp.getActiveSpreadsheet()
                            .getSheetByName("Sheet1"); // put your sheet name between the brackets

  if (editCol == 3) {   // checking if the edited cell was in column C

      var range = sheet.getRange(editRow, 1, 1, editCol - 1); // Take 1st cell in the edited row and make it span 1 row and 2 columns
      var values = range.getValues(); // get values array for the range
      Logger.log(values);

  }

}

结果变量('values')是一个数组,因此必须循环它以获取字符串值。对于电子邮件,您可以在单元格中存储多个电子邮件,以逗号分隔。在字符串上调用split()方法将获得一组值(电子邮件),然后您可以将其作为第一个参数传递给sendEmail方法。

  var cellValue = "email@example.com,anotheremail@example.com,yetanotheremail@example.com";
  var recipients = cellValue.split(",");  
  MailApp.sendEmail(recipients, "From google-apps-script", "hello from google apps script")