Триггер onEdit (e) у меня не работает - Google Sheets, Google Apps Script - PullRequest
0 голосов
/ 27 февраля 2020

Я только что попытался отсортировать столбец с именами в алфавитном порядке после добавления нового имени или редактирования существующего имени (я начал процесс сортировки со второй строки, потому что первая строка - мой заголовок). Я использовал триггер onEdit (e), как показано на рисунке. Это должно быть просто, но это не работает. Когда я добавляю имя на лист или редактирую существующее, ничего не происходит.

ss = SpreadsheetApp.openById("1nQZT16wiN9AX6FqZhioKyeLWoL7_BKfi09zRg");
sheet = ss.getSheetByName("Sheet1");

function onEdit(e) {
  range = sheet.getRange(2, 1, sheet.getLastRow()-1);
  range.sort(1);  
}

Таблица выглядит так, как показано на рисунке: Sreadsheet

Я надеюсь, что у кого-то есть решение этой проблемы.

1 Ответ

2 голосов
/ 27 февраля 2020

Вы получаете электронную таблицу в глобальном масштабе:

ss = SpreadsheetApp.openById("1nQZT16wiN9AX6FqZhioKyeLWoL7_BKfi09zRg");

Для этого требуется любая из следующих областей действия :

Но простые триггеры запускаются без авторизации 1 . Следовательно, Вы не можете использовать SpreadsheetApp.openById(). Однако вы можете получить электронную таблицу из объекта события 2 внутри onEdit:

const onEdit = e => e.source
  .getSheetByName("Sheet1")
  .getRange("A2:A")
  .sort(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...