Я снова - да, это вполне возможно.Все, что вам нужно сделать, это передать переменную row
в getRange()
и использовать номер столбца, из которого вы пытаетесь получить значения.
Этот скрипт должен помочь.
function sendNotification(e){
var ss = e.source.getSheetByName('Datasheet');
var cell = e.range.getA1Notation();
var row = e.range.getRow();
var col = e.range.getColumn();
var cellValue = e.range.getValue();
var subject = 'SUBJECT'+ ss.getSheetName();
var name = ss.getRange(row, 9).getValue(); //get column 9 for current row
if (name === 'NAME' && (col === 23 || col === 24 || col === 31 || col === 32) === true) {
var control = ss.getRange(row, 2).getValue(); //get value for column B in current row
var owner = ss.getRange(row, 8).getValue(); //get value for column H in current row
MailApp.sendEmail({
to: "EMAIL",
subject: subject,
htmlBody: "The following cell has been updated:<br>"+
"<font size=\"2.5\" color=\"black\"><b> Cell: </b></font>" + cell +
"<br><br>" + "The following control was updated: " + control + ", the owner is: " + owner +
"<br>Update: " + cellValue + "<br>" +
"<br><br>Thank you. <br>"
});
}
}
Все, что я сделал, это добавил две переменные, используя getRange()
, как я упоминал ранее:
var control = ss.getRange(row, 2).getValue(); //get value for column B in current row
var owner = ss.getRange(row, 8).getValue(); //get value for column H in current row
Как только вы получите var control
и var owner
, вы можете использовать этив своем теле письма я также добавил это в скрипт выше.Вы можете поиграть с форматированием, но я основал его на шаблоне, который вы указали в своем вопросе.Письмо должно выглядеть примерно так ( примечание: 'b4' и 'h4' - это просто примеры значений, которые я ввел в саму ячейку ):
Надеюсь, это поможет достичь вашей цели.