Я пытаюсь воспроизвести простой пример onEdit() для таблиц Google из этого видео:

https://www.youtube.com/watch?v=L1_nIhiVc5M&list=PLJnkyVAO-LM6VAUetaNIvwADp0XF-LlrE&index=85

У меня есть электронная таблица и скрипт, привязанный к ней. Я предоставил скрипту доступ к электронной таблице. Скрипт имеет следующий код:

function onEdit(e) {
  Logger.log("something was edited " + e.old_value);
}

Когда я редактирую что-то в электронной таблице, функция выполняется, но e не определена. Вот так выглядит результат выполнения в stackdriver:

Stackdriver_screenshot:
stackdriver_screenshot

Что я делаю не так?

0
stekatk 25 Мар 2020 в 14:22
Опечатка. В событии e нет свойства old_value. См. информационную страницу тега официальную документацию или посмотрите свое видео еще раз.
 – 
TheMaster
25 Мар 2020 в 14:44

1 ответ

Ответ:

Параметр объекта события, к которому вы пытаетесь получить доступ, — e.oldValue, а не e.old_value.

Дополнительная информация:

Согласно документации для объектов событий:

oldValue : значение ячейки до изменения, если таковое было. Доступно, только если отредактированный диапазон представляет собой одну ячейку. Будет неопределенным, если в ячейке не было предыдущего содержимого.

Так что в этом случае вы можете исправить это простым изменением кода:

function onEdit(e) {
  Logger.log("something was edited " + e.oldValue);
}

Ссылки:

0
Nimantha 6 Ноя 2021 в 05:56