Изменение даты и времени при изменении в google sheets

Код который нашел в интернете:

function onEdit(e){
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveRange();
  var row = range.getRow(); // Адрес строки активной ячейки
  var col = range.getColumn();
  var name = sheet.getName();
    if (name == "Лист1" && col == 8){ // Если изменения на листе "Лист1" и в колонке H
      if (sheet.getRange(row , 10).getValues()==''){ //Если дата в колонке 10 не заполнена
        sheet.getRange(row, 10).setValues([[new Date()]]); //Заполняем текущую дату
      }
  }
};

Как в гугл таблицах при изменении колонки H обновлять дату и время в колонке J, а при удалении данных из H удалять их из J?


Ответы (2 шт):

Автор решения: Алексей Шебаниц
function onEdit(e) {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let row = e.range.getRow();
  let column = e.range.getColumn();
  let value = e.source.getActiveSheet().getRange(row, 8).getValue();
  let date = Utilities.formatDate(new Date(), "GMT+3", "dd.mm.yyyy H:mm:ss");

  if (column == 8 && value != "") {
    sheet.getRange(row, 10).setValue(date);
  }
  if (column == 8 && value == "") {
    sheet.getRange(row, 10).clearContent();
  }

}
→ Ссылка
Автор решения: REvil

Лучше получать лист так:

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Название листа")
→ Ссылка