Если я выберу несколько ячеек (например, A1: D5) и напечатаю некоторый текст для запуска onEdit (e), как я могу получить выбранный диапазон? Все эти функции (e.range, .getActiveRange, .getActiveSelection) возвращают только одну ячейку с новым текстом (A1)!onEdit trigger e.range только одна ячейка вместо целого выбора
function onEdit(e){
Logger.log('A1 Notation: ' + e.range.getA1Notation());
// Try workaround using getActiveSheet. Also fails within the onEdit function.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getActiveRange();
var selection = sheet.getActiveSelection();
Logger.log('getActiveRange A1 Notation: ' + range.getA1Notation());
Logger.log('getActiveSelection A1 Notation: ' + selection.getA1Notation());
}
Если я нажимаю клавишу «Удалить» вместо ввода текста, функции диапазона работают как ожидалось (A1: D5).
Да, удаление диапазона (или вставки в диапазон) влияет на каждую ячейку диапазона, поэтому имеет смысл, что e.range захватывает весь диапазон. Как я могу получить выбранный диапазон электронной таблицы из функции onEdit (e), вызванной только одной из выбранных ячеек, редактируемых? Я автоматизирую таблицу расписания номеров. Я хочу иметь возможность создавать события календаря непосредственно из листа, выбирая диапазон, соответствующий столбцам строки и времени комнаты, а затем введите имя события. –
Ограничения: поскольку простые триггеры запускаются автоматически, не запрашивая у пользователя разрешения, они могут быть подвергнуты нескольким ограничениям: они не могут получить доступ к службам, требующим авторизации. Например, простой триггер не может отправить электронное письмо, потому что для службы Gmail требуется авторизация, но простой триггер может переводить фразу с помощью службы языка, которая является анонимной. https://developers.google.com/apps-script/guides/triggers/. Пожалуйста, выйдите из механика событий. Попробуйте выбрать диапазон и использовать пользовательскую функцию для выполнения этой задачи. –