Скрипт CurrentTime не работает в Google Doc - PullRequest
0 голосов
/ 10 июля 2019

Предполагается, что Google Doc будет обновляться в соответствии с текущим временем, когда перед ним будут внесены изменения в 2 столбца.

Таким образом, если столбец B или C отредактирован, то столбец D обновляется с текущим временем.

function updateDate() {
  var s = SpreadsheetApp.getActive().getSheetByName("Daily");
  var active_sheet = 
SpreadsheetApp.getActive().getActiveSheet().getName();

  var active_col = s.getActiveCell().getColumn();
  var active_row = s.getActiveCell().getRow();

  var target_rows = [1, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 19, 
20];
  var target_cols = [2, 3]
  var row_in_range = target_rows.indexOf(active_row) == -1 ? false : 
true; Logger.log(row_in_range);
  var col_in_range = target_cols.indexOf(active_col) == -1 ? false : 
true; Logger.log(col_in_range);

  if (row_in_range && col_in_range) {
    s.getRange(active_row, 4).setValue(new Date);
    s.getRange(active_row, 5).setValue(new Date);
  }
}

Не получено сообщение об ошибке из журналов Stackdriver, но оно не работает.

1 Ответ

1 голос
/ 11 июля 2019

Цель:

Функция, которая записывает метку времени в соответствующей строке при редактировании столбцов B или C.


Решение:

Это все, что вам действительно нужно. Это небольшой скрипт, который будет запускать автоматически , используя простой триггер onEdit при редактировании листа. Все, что он делает, это проверяет столбец, который редактируется с использованием объектов событий, а затем записывает отметку времени в столбце D.

Примечание: вы не сможете запустить этот код вручную, он запускается автоматически при редактировании листа.

function onEdit(e) {
  var sh = e.source.getActiveSheet();
  var col = e.range.getColumn();
  if ((col === 2 || col === 3) === true) {
    var row = e.range.getRow();
    sh.getRange(row, 4).setValue(new Date());
  }
}

Ссылки:

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