Событие из одной метки времени сброса на другой лист - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно создать операцию на другом листе, откуда пришло событие.

Например, когда любая ячейка на листе «данные» редактируется / изменяется, выведите метку времени на «другой» лист (в той же электронной таблице). Если это поможет сделать код быстрее, то на листе «данные» будет по крайней мере всегда отредактирована ячейка 1,1, даже если это то же значение, потому что что-то еще автоматически сбрасывает данные и перезаписывает весь лист «данных».

Основная проблема заключается в том, что я не знаю, с каким значением сравнивать условный оператор, так как я не знаю, какие значения изменятся в см. Смотри ниже.

// Dumps the timestamp of the last time the "Data" sheet was edited
function onEdit(e){
  var dataSheetLastColumn = thisSpreadsheet.getSheetByName("Data").getLastColumn();
  var dataSheetLastRow = thisSpreadsheet.getSheetByName("Data").getLastRow();
  var dataSheetEvent = e.source.getSheetByName("Data").getRange(1, 1, dataSheetLastRow, dataSheetLastColumn);

  // puts a time-stamp on another sheet
  var theOtherSheet = thisSpreadsheet.getSheetByName("Other");
  theOtherSheet.getRange(2, 1).setValue(new Date());
}

1 Ответ

1 голос
/ 28 марта 2019

попробуйте это:

function onEdit(e) {
  if(e.range.getSheet().getName()=='Other'){return;}  
  e.source.getSheetByName('Other').getRange(2,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:ss"));
}

Примечание: это событие происходит только при пользовательских изменениях.

    function onEdit(e) {
      if(e.range.getSheet().getName()!='Data' ) {return;}
      e.source.getSheetByName('Other').getRange(2,1).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:ss"));
    }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...