Как создать функцию, которая возвращает время последнего изменения ячейки?

Я хочу написать функцию для скрипта Google Sheets, которая принимает ссылку на ячейку и выводит дату последнего изменения ячейки. Я не знаю, как начать.


person Tarrasque_in_a_hole    schedule 30.06.2020    source источник
comment
связанный stackoverflow.com/questions/57485065/   -  person Kos    schedule 30.06.2020
comment
межсайтовые веб-приложения .stackexchange.com/questions/87620/   -  person Kos    schedule 30.06.2020


Ответы (1)


Нет прямого способа получить точную дату редактирования ячейки.

Способ 1

Получите modifiedTime с помощью Files:get Drive API, который вернет, согласно документации:

Время последнего изменения файла кем-либо (дата-время RFC 3339).


Способ 2

Вместо этого вы можете использовать триггер onEdit(e) и отслеживать каждое изменение из конкретной ячейки.

Так, например, учитывая, что ячейка, которую вы хотите проверить, A1, вы можете использовать этот фрагмент:

Фрагмент

function onEdit(e) {
  if (e.range.getRow() == 1 && e.range.getColumn() == 1) {
    var date = new Date();
    console.log(date);
  }
}

Объяснение

Вышеупомянутая функция представляет собой триггер onEdit, который срабатывает каждый раз, когда на листе выполняется редактирование. Поскольку вы хотите проверить это для конкретной ячейки, объект события e был использован для получения row и column ячейки, которая была отредактирована. Таким образом, условие if в этой ситуации проверяет, равно ли row 1, а столбец равен 1 (диапазон, соответствующий ячейке A1), и на основе этого возвращает текущую дату, которая соответствует в этой ситуации к сделанному редактированию.

Чтобы отслеживать все изменения для ячейки, вы можете сохранить date переменных, полученных в результате редактирования, в массив и в конечном итоге использовать его впоследствии по своему вкусу.


Примечание

Принимая это во внимание, вы не сможете получить время ячейки, которая была отредактирована до срабатывания триггера.


Ссылка

person ale13    schedule 01.07.2020