Уведомление по электронной почте, если конкретная ячейка изменена, и добавьте еще одно значение в сообщение без отслеживания изменений
Что я сделал:
Если какая-либо ячейка в столбце M была изменена, то было отправлено уведомление по электронной почте для указания адресов из столбца N в той же строке. Но мне также нужно указать основной текст из других столбцов в той же строке. Я сделал что-то, что работает, но это также приводит к тому, что если были изменены другие объявленные столбцы (например, проект, клиент, задача, исполнитель), на которые был отправлен emil.
Что мне нужно:
Просто отслеживайте изменения только в одном столбце «M» и добавляйте в тело письма дополнительные данные из других столбцов, но из той же строки. И (в этом вся суть) не отслеживал изменения в других столбцах, электронная почта должна отправляться только при изменении столбца М.
Наверное, это было бы легко, но я искажен ...
Я написал этот скрипт на основе:
уведомление по электронной почте, если ячейка измененакак прикрепить событие / скрипт значения ячейки onChange к гугл листуОграничить отправку уведомлений об изменениях, указанных в столбцахМой сценарий:
function sendNotification() {
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 sendto = '';
if(cell.indexOf('M')!=-1){
sendto = sheet.getRange('N'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var project = '';
project = sheet.getRange('C'+ sheet.getActiveCell().getRowIndex()).getValue()
var customer = '';
customer = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
var task = '';
task = sheet.getRange('E'+ sheet.getActiveCell().getRowIndex()).getValue()
var executor = '';
executor = sheet.getRange('F'+ sheet.getActiveCell().getRowIndex()).getValue()
var deadline = '';
deadline = LanguageApp.translate(Utilities.formatDate(sheet.getRange('I'+ sheet.getActiveCell().getRowIndex()).getValue() , "GMT" , "EEEE, dd MMMM YYYY" ),'en','pl')
var status = '';
status = sheet.getRange('M'+ sheet.getActiveCell().getRowIndex()).getValue()
var mysubject = status + ' | ' + project + ': ' + task + ' - ' + ss.getName() + ' update';
var mybody = '\nStatus: ' + status + '\n\nproject: ' + project + '\ncustomer: ' + customer + '\ntask: ' + task + '\nexecutor: ' + executor + '\nDeadline: ' + deadline + '\n\n' + ss.getName() + ': \n' + ss.getUrl();
MailApp.sendEmail({
to:sendto,
subject:mysubject,
body:mybody});
};