onEdit () не ловит все изменения - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть простой скрипт триггера, который должен добавить метку времени в следующем столбце.просто, onEdit не ловит все правки.Можно ли что-нибудь сделать в настройках?

function onEdit(e){
  if (e.value == "TRUE") {e.range.offset(0, 1).setValue(new Date())} 
}

enter image description here

1 Ответ

0 голосов
/ 25 февраля 2019

О вашей ситуации есть нить .В этой теме Рубен говорит, что

Это известное ограничение onEdit.

О прямом решении этой проблемы требуетсяждать обновления Google.

Здесь я хотел бы найти обходной путь для вашей ситуации.Ход этого обходного пути заключается в следующем.

Этот обходной путь предполагает наличие флажков в диапазоне «F1: F20».

  1. Проверьте, находится ли отредактированный диапазон в «F1: F20»".
  2. Если отредактированный диапазон находится в« F1: F20 », получить значения« F1: F20 »и проверить каждое значение.
  3. Создать массив для помещения результата.
  4. Замените созданный массив на "F1: F20".

Таким образом, хотя он может быть не идеальным, он может быть искусственно достигнут.Пожалуйста, подумайте об этом как об одном из нескольких обходных путей.

Пример сценария:

function onEdit(e){
  if (e.range.columnStart == 6 && e.range.columnEnd == 6 && e.range.rowStart <= 20) {
    var ckeckboxRange = "F1:F20";
    var date = new Date();
    var range = e.source.getRange(ckeckboxRange);
    var values = range.getValues().map(function(e) {return e[0] === true ? [date] : [""]});
    range.offset(0, 1).setValues(values);
  }
}

Результат:

enter image description here

Примечание:

  • Это простой пример сценария.Поэтому, пожалуйста, измените это для вашей ситуации.

Если это не тот результат, который вы хотите, я прошу прощения.

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