Google Sheets игнорирует некоторые изменения / обновления ячеек - PullRequest
0 голосов
/ 03 октября 2018

У меня есть скрипт в Google Sheets, который отправляет электронное письмо при изменении любой ячейки в столбце.(это работает) Однако я хочу игнорировать, если ячейка изменилась с «пусто» на «значение».Т.е. отправлять только электронные письма, если значение изменилось с ранее введенного значения.- Спасибо

ОБНОВЛЕНИЕ: Я работал над этим еще немного, и вот решение, которое я придумал.Вроде работает.Надеюсь, это пойдет на пользу другим.Опубликовано ниже.

1 Ответ

0 голосов
/ 08 октября 2018

Вот мой предложенный ответ.Он был протестирован на производстве.

  • Триггеры при «редактировании»
  • Если изменение относится к уже заполненной ячейке, электронное письмо отправляется
  • Если изменение относится кпустая ячейка, электронная почта не отправляется
  • Отправитель электронной почты - это электронное письмо по умолчанию (как указано: опция "noreply" переопределяет атрибут "name")
  • Письмо включает значения из других ячеек вта же строка, что и изменение

Вот код:

function sendNotificationCellChange(e) {
  var ss = e.source;
  var sheet = ss.getActiveSheet();
  var range = e.range;
  var oldvalue = e.oldValue;
  var newvalue = e.value;

  var recipients = "you@gmail.com" + "," + "me@gmail.com";
  var cust_name = '';
  var proj_num = '';
  var subject = '';
  var body = '';

  if (range.getA1Notation().indexOf('K') != -1 && oldvalue !== undefined && newvalue !== undefined) {
    cust_name = sheet.getRange('B'+ sheet.getActiveCell().getRowIndex()).getValue();
    proj_num = sheet.getRange('C'+ sheet.getActiveCell().getRowIndex()).getValue();

    var subject = 'Ship Date Has Changed: \"'+newvalue+'\" Customer: \"'+cust_name+'\" Project Number: "'+proj_num+'"';
    MailApp.sendEmail(recipients, subject, body, {
      name: 'Schedule',
      noReply: 'true'
    });
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...