Дата в 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"));
}
Другие вопросы по тегам