Дата в Google листе последней ревизии подряд
Помогите! В листах Google я просто хочу, чтобы в один столбец вводились последние дата и время обновления или изменения любой ячейки в строке. Например: a1 - должен получить дату последней редакции, b1-z1 (любое количество ячеек после a1) - каждый раз, когда любая ячейка в этой строке обновляется или пересматривается, дата a1 обновляется.
Я хочу применить один и тот же сценарий к нескольким листам.
Сначала я нашел этот скрипт, который, казалось, работал нормально:
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
//Script Last Update Timing
var actSht = event.source.getActiveSheet();
var actRng = event.source.getActiveRange();
var activeCell = actSht.getActiveCell();
var row = activeCell.getRow();
var column = activeCell.getColumn();
if(row < 2) return; //If header row then return
var colNums = [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]; //Coulmns, whose edit is considered
if(colNums.indexOf(column) == -1) return; //If column other than considered then return
var index = actRng.getRowIndex();
var dateCol = actSht.getLastColumn();
var lastCell = actSht.getRange(index,dateCol);
var date = Utilities.formatDate(new Date(), "GMT+5:30", "dd/MM/yyyy HH:mm:ss");
// Note: Insert the Date when someone update the row in the last coulmn
lastCell.setValue(date);
}
Когда я тестировал его, он работал нормально, но после этого дня он не работал или иногда он работает, или работает, когда я сам делаю ревизии, но он не работает с людьми, с которыми я делюсь файлом.
Я ничего не знаю о сценариях, но после недели поиска я решил опубликовать, надеясь, что кто-то может привести меня в правильном направлении.
Любая помощь будет принята с благодарностью! Заранее спасибо!
1 ответ
Посмотрите, поможет ли это:
function onEdit(e) {
if (e.range.columnStart < 5 || e.range.rowStart < 21) return;
e.source.getActiveSheet().getRange(e.range.rowStart, 1) //first col
.setValue(Utilities.formatDate(new Date(), "GMT+5:30", "dd/MM/yyyy HH:mm:ss"));
}