Я очень новичок в этом, и в моей работе есть лист Google, в котором содержится вся наша информация о потенциальных клиентах из FB, и я пытаюсь получить функцию (onEdit), которая будет отправлять электронное письмо ведущему на основе данные одной ячейки. Например, когда A2 содержит «Follow Up», то он отправляет электронное письмо на адрес в D2, а основной текст приходит от J2 (стандартный ответ для проверки данных «Follow Up»). Прямо сейчас это работает для строки 2, однако при вводе «Follow Up» в любой другой строке каждая строка в списке отправляет электронное письмо. Например, при запуске события в A29 он отправляет основной текст в столбце J на каждое электронное письмо в списке. Я пытаюсь сделать так, чтобы событие отправляло только одно электронное письмо за раз (в зависимости от требований проверки активной ячейки).
Я приложил все усилия, чтобы просмотреть другие посты здесь, чтобы соединить этот код, используя цикл for, чтобы также проверять наличие новых строк (новые строки постоянно добавляются на лист). Три оператора if, вероятно, неаккуратны, но я пока не знаю, как это объединить в единственное выражение if. Я думал о добавлении столбца, в котором указано, было ли уже отправлено письмо, и обновил цикл for или оператор if, чтобы не отправлять письмо в эти строки.
var sheetname = "Prometheus";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
var ac = sheet.getActiveCell();
var endRow = sheet.getLastRow();
var startRow = 1;
for (var i = endRow; i >= startRow; i--) {
var rangeToCheck = sheet.getRange(i, 1, 1, 21);
if (ac.getValue() == "Appt. Set (appointment is setup)") {
data = rangeToCheck.getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][4],
subject: "Appt. Confirmation",
body: data[0][10]
}); break;
} else if (ac.getValue() == "Lead") {
data = rangeToCheck.getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][4],
subject: "Welcome",
body: data[0][11]
}); break;
} else if (ac.getValue() == "Follow Up") {
data = rangeToCheck.getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][4],
subject: "Follow Up",
body: data[0][12]
});
}
}
}
Я ожидаю, что когда моя активная ячейка выполнит условие в операторе if, только одна электронная почта будет отправлена контактной информации в той же строке. Прямо сейчас он отправляет электронные письма всем в листе, когда условие выполняется в одну строку.