EDIT:
Простые триггеры , такие как onEdit (), onOpen () или onFormSubmit (), имеют ограниченный набор возможных действий, поскольку они выполняются без авторизации. По этой причине простой триггер не может отправить электронное письмо.
Вы можете добавить кнопку пользовательского интерфейса, чтобы вручную увидеть, есть ли какие-либо значения для проверки.
Если вы хотите отправить электронное письмо только для вновь отредактированных полей, вы должны добавить что-то вроде столбца «статус» (столбец S в примере ниже). Примерно так:
function workflow (){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getDataRange();
var values = range.getValues();
var cellValue;
var sheetname = ss.getActiveSheet().getName();
var user = Session.getActiveUser().getEmail();
for (var i=0; i < values.length; i++){
//[17] == Column R || [18] == Column S
if (values[i][17] <= 0 && values[i][18] != "processed"){
cellValue = values[i][17];
var cell = 'R'+(i+1)
var statusCell = 'S'+(i+1)
var Toemail = 'mail@domain.com';
var subject = 'Warning -' + ss.getName();
var body = 'Your file has a new entry in ' + sheetname + '.\n'+'Updated by ' + user + '.\n New Value in '+ cell + '= '+cellValue+ '.\n check file ' + ss.getUrl();
MailApp.sendEmail(Toemail,subject, body);
ss.getSheetByName(sheetname)
.getRange(statusCell)
.setValue('processed')
} else {
var statusCell = 'S'+(i+1)
ss.getSheetByName(sheetname)
.getRange(statusCell)
.setValue('processed')
}
}
}
Это может сработать, но я не знаю, действительно ли вы этого хотите. Он проверяет столбец R и ищет значения <= 0. Когда он находит одного из них, отправляется электронное письмо. </p>
function workflow (){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getDataRange();
var values = range.getValues();
var cellValue;
var sheetname = ss.getActiveSheet().getName();
var user = Session.getActiveUser().getEmail();
for (var i=0; i < values.length; i++){
//[17] == Column R
if (values[i][17] <= 0){
cellValue = values[i][17];
var cell = 'R'+(i+1)
var Toemail = 'mail@domain.com';
var subject = 'Warning -' + ss.getName();
var body = 'Your file has a new entry in ' + sheetname + '.\n'+'Updated by ' + user + '.\n New Value in '+ cell + '= '+cellValue+ '.\n check file ' + ss.getUrl();
MailApp.sendEmail(Toemail,subject, body);
}
}
}
В этом случае:
Мы отправим 3 таких письма: