Помилка “Помилка діапазону не знайдено” у функції sendEmails
та недостатність діагностики не дозволяє ідентифікувати її джерело. Схоже, це помилка зациклювання, але я не впевнений. Повідомлення про помилку “Exception: Range not found” посилається на рядки: rows.forEach(function(row))
і var eventEmail = eventsData.getRange(row[5]).getValue();
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function SendEmails() { // Витягнення даних про події var eventsData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("НАЗВА_АРКУША"); var rows = eventsData.getDataRange().getValues(); var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("НАЗВА_АРКУША_2").getRange(1, 1).getValue(); // Вилучення рядка заголовків var headers = rows.shift(); // Визначення тільки тих рядків, які відмічені галочками, щоб застосувати функцію та записати лог rows.forEach(function(row) { if (row[0]) { Logger.log(JSON.stringify(row)); // Витягнення шаблону нагадування та відправка нагадувальних листів для вибору var eventEmail = eventsData.getRange(row[5]).getValue(); var eventTitle = eventsData.getRange(row[1]).getValue(); var eventPOC = eventsData.getRange(row[6]).getValue(); var eventDesc = eventsData.getRange(rows[4]).getValue(); var messageBody = templateText.replace("{name}", eventPOC).replace("{title}", eventTitle).replace("{description}", eventDesc); var subjectLine = "Нагадування: " + eventTitle + " Надходяща подія"; MailApp.sendEmail(eventEmail, subjectLine, messageBody); } }); } |
Ця функція працювала до того, як я вніс деякі зміни, щоб вона запускалася тільки для рядків, в яких встановлені прапорці. Схоже, вона успішно визнає рядки, в яких встановлені прапорці. Також здається, що вона проходить через перший цикл, але після цього відбувається щось, що я не можу ідентифікувати. Я пробував змінити посилання на діапазони, щоб переконатися, що правильно вказуються потрібні стовпці. Буду вдячний за будь-яку допомогу!