In имеют установленный триггер для onEdit и установленный триггер для onChange. Я регистрирую содержимое объекта события, который передается, как показано ниже
function installedOnChange(e) {
var me = CalleeName(arguments);
Logger.log("%s: %s", me, JSON.stringify(e));
(CalleeName определяется как
function CalleeName(a) {
return a.callee.toString().split(" ")[1].split("(")[0].trim();
}
).
Стрификация события содержит .oldvalue
и .value
, за исключением в ситуации, когда ячейка копируется ^ C, а затем ^ V вставляется в другую ячейку. В случае ни то, ни другое не дано. Например, здесь у нас есть данные событий onEdit и onChange для копирования в J19:
onEdit: {"authMode":"FULL","range":{"columnEnd":10,"columnStart":10,"rowEnd":19,"rowStart":19},"source":{},"triggerUid":"3504192","user":{"email":"data@blahblahblah","nickname":"data"}}
onChange: {"authMode":"FULL","changeType":"EDIT","source":{},"triggerUid":"3538611","user":{"email":"data@blahblahblah","nickname":"data"}}
Как вы можете видеть, нет .value
и нет .oldvalue
.
Я могу эквивалентно .value
, оценивая e.source.getActiveCell().getValue()
, однако я до сих пор не могу sh установить, каким было предыдущее значение ячейки, то есть то, что ячейка назначения содержала перед ^ V паста была выпущена.
Мне пришло в голову, что, возможно, это значение может быть доступно в Show Edit History, списке, доступном щелчком правой кнопкой мыши по ячейке на листе. Однако я не могу найти программный интерфейс c для этой информации. Существует ли такая вещь? Если так, то как? и если нет, то где я могу опубликовать запрос на изменение?