Итак, у меня есть электронная таблица Google, которая постоянно обновляется скриптом под названием «writeToSheet» (это работает отлично). Это записывает новую строку в конце таблицы, последний столбец которой является датой.onEdit триггерные скрипты Google не работают
У меня также есть второй скрипт с функцией «writeToCal», которая берет некоторые данные из этой новой строки в электронной таблице и создает событие календаря Google в дату, указанную в столбце, упомянутом выше.
Проблема возникает, когда я пытаюсь вызвать «writeToCal», так что «writeToCal» выполняется всякий раз, когда электронная таблица обновляется. Я пробовал простые триггеры и устанавливаемые триггеры, но, похоже, не работает для меня. (https://developers.google.com/apps-script/guides/triggers/installable)
Код работает (т. Е. Создает событие календаря), когда я запускаю его из диспетчера сценариев в электронной таблице Google, но я хочу, чтобы он запускался автоматически каждый раз, когда электронная таблица обновляется. Поскольку сценарий отлично работает, когда я запускаю его, я считаю, что это вопрос запуска, но я не могу понять, в чем проблема. Любая помощь будет высоко ценится
Мой код выглядит следующим образом, этот сценарий связан с таблицей в вопросе:
**function triggerWhyDoYouCallMeDave() {
var ss = SpreadsheetApp.openById("BlahBlah");
ScriptApp.newTrigger('writeToCal')
.forSpreadsheet(ss)
.onEdit()
.create();
}
function writeToCal(e) {
var ss= SpreadsheetApp.openById("BlahBlah");
var tt = ss.setActiveSheet(ss.getSheets()[0]);
var lastRow = tt.getLastRow();
var lastColumn = tt.getLastColumn();
//Title is from the User and the follow up message
var userCell = tt.getRange(lastRow, 2);
var usr = userCell.getValue();
var followUpCell = tt.getRange(lastRow, 8);
var follUp = followUpCell.getValue();
var target = tt.getRange(lastRow, 6);
var targetName = target.getValue();
var title = (usr+": "+follUp+" with "+targetName);
//Get the date from the follow up date.
var dateCell = tt.getRange(lastRow, 9);
var follUpDate = new Date(dateCell.getValue());
var calendar = CalendarApp.getCalendarById('BlahBlah');
calendar.createAllDayEvent(title, follUpDate);
}**
Вы редактируете свой лист вручную или используете только другой скрипт, который вы упомянули? –
Лист редактируется другим скриптом. – AnPocArBuile