Как отправить условное электронное письмо на основе значения ячейки из ответа формы?

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

В столбце 1 указана отметка времени, в столбце 14 — дата начала работы сотрудника. Моя формула в Col33 определяет, сколько дней они проработали на момент отправки формы.

Я хочу отправить электронное письмо человеку, если количество дней меньше 182.

У меня есть предварительно напечатанное электронное письмо, и я могу разместить его где угодно. На данный момент он у меня во всех ячейках в col36. Адрес электронной почты будет в столбце 32.

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

function sendEmail() {
    var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues()
    for (i in values.length) {
        var data = values[i][33];
        var emailAddress = values[i][32];
        var message = values[i][36];
        if (data < 182); {
            MailApp.sendEmail(emailAddress, "Flexible Working Request", message);
        }
    }
}

Текущие результаты только что удаляли данные в col33, Col34 и Col36 только в новой строке ответа формы.

Извините, если на этот вопрос был дан ответ в другом месте, любой другой ответ, который я нашел на аналогичные проблемы, я не смог приступить к работе.

Отправка электронной почты с помощью Python менее чем за 1 минуту
Отправка электронной почты с помощью Python менее чем за 1 минуту
Отправка электронной почты с помощью Python - это удобный способ автоматизировать процесс отправки электронных писем. Это может быть полезно для...
0
0
2 039
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

var sheet = SpreadsheetApp.getActiveSheet().getSheets[0];
var cell = ["A33"];

var days_value = sheet.getRange(cell).getValue();

Затем вы можете просто сделать условие if для отправки электронного письма:

 if (days_value < 182){
    MailApp.sendEmail(emailAddress, "Flexible Working Request", message);

    }

Надеюсь это поможет

Ответ принят как подходящий

У меня есть человек, который намного лучше разбирается в скриптах Google Apps на работе, чтобы помочь мне.

Это связано с тем, что формы Google отодвигают формулы в сторону.

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

function sendEmailv2() { 
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form responses 
 1'); 
 var scrip = Session.getScriptTimeZone(); 

 var date = sheet.getRange(sheet.getLastRow(),14).getValue();
 var sub = sheet.getRange(sheet.getLastRow(),1).getValue();
 Logger.log(date);
 var fortmat = Utilities.formatDate(new Date(date), scrip, "dd/MM/yyyy");

 var Subfortmat = Utilities.formatDate(new Date(sub), scrip, "dd/MM/yyyy");
 var emailAddress = sheet.getRange(sheet.getLastRow(),32).getValue();

 var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet4'); 
 var message = sheet2.getRange(1,1).getValue();
 var days = sheet2.getRange(sheet2.getLastRow(),2).getValue();


 if (days<182){

 MailApp.sendEmail(emailAddress, "Flexible Working Request", message,{noReply:true});
  }

}

Спасибо!

Другие вопросы по теме