Отправлять электронное письмо, когда ячейка имеет определенный цвет?

У меня очень ограниченные знания по этому поводу. Так мало, что мне, наверное, даже не следует называть это «знанием».

Вот что я пытаюсь сделать: у меня есть столбец с датами, относящимися к отправке дат. Если дата уже прошла, ячейка становится красной (# a33838). Я хочу отправить электронное письмо, если ячейка в этом столбце станет красной, чтобы я знал, что она не была отправлена ​​и требует действий. Я также хочу, чтобы электронное письмо содержало информацию о строке, в которой находится ячейка

Я просматривал форумы и думаю, что мне нужна смесь этих двух разных сообщений:

Изменить значение ячейки в зависимости от цвета ячейки в электронной таблице Google

Отправлять электронное письмо, когда в ячейке есть определенные значения

Если кто-нибудь знает, как это сделать, это действительно будет палочкой-выручалочкой! Огромное спасибо.


person SheetSOS    schedule 29.10.2019    source источник
comment
Нет триггеров, которые бы делали это напрямую. Однако вы можете использовать триггер на основе времени для поиска этих изменений время от времени в течение дня.   -  person Cooper    schedule 29.10.2019
comment
Вам не нужна проверка цвета. Просто проверьте дату - вам нужно сделать это самостоятельно   -  person TheMaster    schedule 29.10.2019


Ответы (1)


Этот код поможет вам в том, что вам нужно

var EMAIL_ADDRESS = "email@domain";
var SUBJECT = "Passed dates";
var message = "";

function alertDate() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // get the sheet where values are
  var date_col = sheet.getRange(1, 1, sheet.getLastRow()); // get the column with the dates
  var dates = date_col.getValues();
  var row = 0;
  for(var i = 0; i < dates.length; i++){ // iterate over all dates 
    if( dates[i] < Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy")){ // check if date already passed
      date_col.getCell(i + 1, 1).setBackground("#A33838"); // change cell´s color
      row = i + 1;
      message += "This date " + dates[i] + " on row " + row.toString() + " has already passed\n"; // build message to send
    }
  }
  MailApp.sendEmail(EMAIL_ADDRESS, SUBJECT, message); // send email
}

Уведомление:

Я использую формат ММ / дд / гггг для дат в моем примере, поэтому, если вы используете другой формат в своем листе, вам необходимо изменить его:

Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy")
person alberto vielma    schedule 30.10.2019