У меня есть рабочий график в электронной таблице Google, и мне нужно, чтобы он автоматически отправлял каждому человеку по расписанию электронное письмо, если их расписание изменилось. Я создал дополнительный лист для каждого человека, у которого есть только их расписание (это обновление автоматически основано на изменениях в исходном расписании). Как я могу изменить свой сценарий, чтобы он обнаружил изменение на одном из листов (например, лист с именем «Тодд») и отправил ему письмо? Ниже приводится то, что у меня есть до сих пор ...Google Таблицы Сценарии: уведомления по электронной почте при внесении изменений в конкретный лист
Я боролся с этим скриптом в течение нескольких недель, и я не могу найти окончательный ответ нигде, поэтому я отправляю свой собственный вопрос (извините, m довольно неопытный, так что несите со мной).
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Todd');
var range = sheet.getActiveRange().getA1Notation();
var recipients = "[email protected]";
var message = '';
function createSpreadsheetChangeTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('onChange')
.forSpreadsheet(ss)
.onChange()
.create();
}
var subject = 'Update to Work Schedule';
var body = 'Todd, your schedule has changed. Visit ' + ss.getUrl();
MailApp.sendEmail(recipients, subject, body);
};
Спасибо за быстрый ответ rsynnest! На самом деле, у меня уже есть триггеры для всех проектов. Проблема в том, что он только отправляет мне сообщения по электронной почте, когда я нажимаю «запустить» в редакторе сценариев, а не когда изменения сделаны в моих листах. Кроме того, причина, по которой я устанавливаю отдельные листы для каждого человека, заключается в том, что при внесении изменений он отправляет по электронной почте только человека, чей график изменился, а не всех. Может ли быть более простой способ сделать это? Может быть, избавиться от отдельных листов, и у вас есть только один лист и назначить диапазон ячеек каждому человеку, и установить мой сценарий для отправки этого человека, если их ячейки меняются? –
Ах, я не заметил триггер вызова API в вашем скрипте. Я скопировал ваш код дословно, и он отлично работает. Возможно, проблема связана с несколькими листами. Что бы я сделал, это использовать один лист с столбцом «email_address». Затем отправьте уведомления по электронной почте на адрес в этом столбце, указав его в своем скрипте. – rsynnest
Он должен работать. Вы уверены, что активировали onChange для sendNotification() в меню запуска проекта ?. Он не будет работать, если вы укажете только триггер в коде функции sendNotification, потому что функция sendNotification никогда не будет вызвана, если она не будет вызвана. – rsynnest