Вы можете использовать функцию getCell(row, column)
, доступную для объекта Range
, чтобы получить содержимое ячейки слева от текущей активной ячейки (при условии, что первый столбец является адресом электронной почты, а второй столбец содержит ячейкибыть измененным).Следующий фрагмент кода выбирает адрес электронной почты получателя как таковой, отправляя в качестве тела значение ячейки, которая была изменена:
function sendEmail() {
// Spreadsheet info
var ss = SpreadsheetApp.getActiveSpreadsheet(); // get all sheets
var sheet = ss.getActiveSheet(); // get current sheet
var data = sheet.getDataRange(); // get all data in the active sheet
var sheetname = sheet.getName();
// Current cell info
var cell = sheet.getActiveCell();
var currColumn = cell.getColumn();
var currRow = cell.getRow();
// Email setup
var user = Session.getActiveUser().getEmail();
var subject = 'New Entry - ' + ss.getName();
// Do I send an email?
if(Number(ss.getActiveCell().getValue() != -1.23456789) && currColumn == 2) {
var toEmail = String(data.getCell(currRow, currColumn - 1).getValue());
var body = data.getCell(currRow, currColumn).getValue();
MailApp.sendEmail(toEmail, subject, body);
}
};
Важной строкой является строка, определяющая toEmail
, котораяпросит currColumn - 1
.