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

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

1 ответ

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

Способ 1

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

Последний раз, когда файл был кем-либо изменен (дата и время 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 переменные, полученные в результате редактирования массива, и впоследствии использовать их по своему усмотрению.


Заметка

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


Справка

Другие вопросы по тегам