Отправка электронного письма из таблиц Google, когда значение в столбце изменяется и проходит тест IF - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу создать Google Script для отправки мне электронных писем всякий раз, когда происходит определенная вещь. Я знаю, как его создать, но не могу понять, какой код необходим в сценарии.

  1. Триггер представляет собой комбинацию из двух вещей: ячейки в столбце BU меняют свои значения и значениесоответствующая строка в столбце BV - "nu".
  2. В электронном письме должен содержаться следующий текст: "Предупреждение - [соответствующая строка в столбце BW] записала [содержимое ячейки, которая была триггером =в колонке BU]. "

Я пытался искать ответы, но, похоже, не смог взломать этот. Пожалуйста, помогите.

Спасибо

Вот код, который я пробовал до сих пор:

function sendEmailAlert() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var data = ss.getActiveSheet().getActiveCell().getA1Notation();
var sheetname = ss.getActiveSheet().getName();
var user = Session.getActiveUser().getEmail();
var Toemail = 'myemail@gmail.com';
var subject = 'Raspuns gresit Belbin';
var body = 'Cineva a raspuns gresit la testul Belbin - ' + ss.getUrl();

if(data.indexOf('BU:BU')!=-1.23456789) {

MailApp.sendEmail(Toemail,subject, body);
 }

};    

1 Ответ

0 голосов
/ 13 ноября 2019

Если вы хотите иметь функцию, которая запускается каждый раз, когда ячейка меняет свое значение, вам необходимо использовать функцию onEdit().

Но вы бы не сталивозможность отправить электронное письмо, поскольку ограничения говорят:

Они не могут получить доступ к службам, требующим авторизации. Например, простой триггер не может отправить электронное письмо, поскольку службе Gmail требуется авторизация, но простой триггер может перевести фразу с помощью службы языка, которая является анонимной.

Для получения дополнительной информации об объектах событий,Вы можете проверить этот .

В качестве плюса этот код может помочь вам в достижении вашей цели, но с учетом упомянутых выше ограничений.

function onEdit(e){
  var sheet = SpreadsheetApp.getActiveSheet();

  var range = e.range;
  var columnEvent = range.getColumn();
  var rowEvent = range.getRow();
  var bvColumn = // bv column number
  var buColumn = // bu column number

  var cellCondition = sheet.getRange(rowEvent, bvColumn, 1, 1).getValue().toLowerCase();

  if( columnEvent === buColumn && cellCondition === "nu"){
    // Do something here
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...