Как удалить значение ячейки, ранее установленное объектом события (e) простого триггера onEdit () в Google Sheets? - PullRequest
0 голосов
/ 04 июня 2019

После моего предыдущего поста дополнительная проблема удаления значений, предварительно заданных объектом события (e), здесь Как автоматически добавлять порядковый номер записи, основанной на метке, в строку, когда в нее добавляются несмежные новые данные это в Google Sheets?

Как получить результат из приведенного ниже кода, используя переменную или более простой метод в контексте текущей ситуации?

С помощью @TheMaster и некоторых других из @Tanaike здесь скрипт Google обнаруживает пустую ячейку после редактирования Я нашел обходной путь для удаления значений, предварительно заданных объектом события (e).

Вот что я нашел:

function onEdit(e) {
  var rg = e.range,
    row = rg.rowStart,
    col = rg.columnStart,
    sht = rg.getSheet();

  //exit code
  if (col !== 2 || sht.getName() !== 'Sheet1' || row === 1) return;

  // When the empty cell is edited, this becomes true.
  if ((e.value != null) && (e.oldValue == null)){ 
  //Calculate max value and add 1
  rg.offset(0, -1, 1, 1).setValue(//setvalue in colA
    rg
      .offset(2 - row, -1, sht.getLastRow() - 1, 1) //get all of colA
      .getValues()
      .reduce(function(acc, curr) {//get max of colA
        return Math.max(acc, Number(curr[0]));
      }, 0) + 1
  );
  }

  // When the value of cell with a value is removed, this becomes true.
  else if ((e.value == null) && (e.oldValue == null)) { 
  rg.offset(0, -1, 1, 1).setValue(//setvalue in colA
    rg
      .offset(2 - row, -1, sht.getLastRow() - 1, 1) //get all of colA
      .getValues()
      .reduce(function(acc, curr) {//get max of colA
        return Math.max(acc, Number(curr[0]));
      }, 0)
  ).clearContent(); // If we delete cell
  }

}

Вот живой результат:

https://i.imgur.com/jWd4Erz.gif

Какой более простой и понятный способ достижения результата вы бы порекомендовали?

Результат делает то, что ожидается. Но есть ли способ использовать переменную для достижения того же результата в контексте исходного кода @TheMaster ниже?

Оригинальный код от @TheMaster ссылка :

function onEdit(e) {
  var rg = e.range,
    row = rg.rowStart,
    col = rg.columnStart,
    sht = rg.getSheet();

  //exit code
  if (col !== 2 || sht.getName() !== 'Sheet1' || row === 1) return;

  //Calculate max value and add 1
  rg.offset(0, -1, 1, 1).setValue(//setvalue in colA
    rg
      .offset(2 - row, -1, sht.getLastRow() - 1, 1) //get all of colA
      .getValues()
      .reduce(function(acc, curr) {//get max of colA
        return Math.max(acc, Number(curr[0]));
      }, 0) + 1
  );
}

Большое спасибо за вашу помощь и идеи!

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