Функция sendEmail: как я могу ограничить это, чтобы значение ячейки соответствовало определенному текстовому значению, такому как «Да» или «Нет» - PullRequest
0 голосов
/ 28 января 2019

Я хочу, чтобы листы Google отправляли электронное письмо, когда ячейка редактируется в определенном столбце, однако ячейка должна соответствовать определенному слову.Т.е. электронное письмо будет отправлено только в том случае, если текст ячейки равен «Да» или «Нет»

Мне удалось получить определенный столбец и настройку триггера Onedit в редакторе сценариев Google, однако я не получилНе удалось получить ячейку, соответствующую определенному тексту

function sendEmail(event) {
  // Getting the row
  const ss = event.source.getActiveSheet();
  const row = ss.getDataRange().getValues()[event.range.getRow()-1];
 const currentColumn = event.range.columnStart;
  if (ss.getName() !== 'Sheet1' || currentColumn !== 5 )  
return; 
 var emailAddress= test@gmail.com
var emailBody= "Test"
var subject = "Test"
MailApp.sendEmail(emailAddress, subject, emailBody);

Я хочу, чтобы листы Google отправляли электронные письма, когда ячейка редактируется в определенном столбце, однако ячейка должна соответствовать определенному слову.Т.е. письмо будет отправлено только в том случае, если текст ячейки равен «Да» или «Нет»

1 Ответ

0 голосов
/ 28 января 2019

Я добавил одну строку кода в вашу функцию, которая должна помочь.:)

function sendEmail(event) {
  // Getting the row
  const ss = event.source.getActiveSheet();
  const row = ss.getDataRange().getValues()[event.range.getRow()-1];
  const currentColumn = event.range.columnStart;
  if (ss.getName() !== 'Sheet1' || currentColumn !== 5 )  
return;

  if (!event.value.match(/^(Yes|No)$/)) return;

  var emailAddress= test@gmail.com;
  var emailBody= "Test";
  var subject = "Test";
  MailApp.sendEmail(emailAddress, subject, emailBody);
}

Ссылки

regex101.com

Объекты событий


Вот как бы я это написал.

function sendEmail(event) {

 const sheet = event.source.getActiveSheet();
 const currentColumn = event.range.getColumn();
 if (sheet.getName() !== 'Sheet1' || currentColumn !== 5)  
return;

 if (!event.value.match(/^(Yes|No)$/)) return;

 var emailAddress = test@gmail.com;
 var emailBody = "Test";
 var subject = "Test";
 MailApp.sendEmail(emailAddress, subject, emailBody);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...