Запускать обе функции одновременно не работает (Google Sheets Script) - PullRequest
0 голосов
/ 31 января 2020

Я пытался объединить эти две функции, чтобы скрипт работал, когда пользователь редактирует любой лист, но только первая функция работает нормально. Второй ничего не выводит, и при этом это не показывает никаких ошибок. Я не могу понять, где недостаток здесь:

function onEdit(e) {
  var ss = e.source.getActiveSheet();
  var watchedCols = [3, 4, 5]; //Se quiser adicionar mais colunas mudadas que estampam o horário na primeira coluna, adicione ", 3, 4, 5, 6, 7, 8, 9" nos cochetes.
  var watchedSheet = 'To Do List'; //change name if needed
  if (watchedCols.indexOf(e.range.columnStart) === -2 || ss.getName() !== watchedSheet || e.range.rowStart < 8) return;
  ss.getRange(e.range.rowStart, 2)
  .setValue(new Date()).setNumberFormat("DD/mm/yyyy")
  Logger.log(watchedCols)

  var watchedCols2 = [2, 3]; //Se quiser adicionar mais colunas mudadas que estampam o horário na primeira coluna, adicione ", 3, 4, 5, 6, 7, 8, 9" nos cochetes.
  var watchedSheet2 = 'Updates'; //change name if needed
  if (watchedCols2.indexOf(e.range.columnStart) === -2 || ss.getName() !== watchedSheet2 || e.range.rowStart < 5) return;
  ss.getRange(e.range.rowStart, 1)
  .setValue(new Date()).setNumberFormat("DD/mm/yyyy")
  Logger.log(watchedCols2)
}

Заранее спасибо.

1 Ответ

2 голосов
/ 31 января 2020

Я вижу только одну функцию, но я предполагаю, что вы пытаетесь объединить два onEdits () в одну? Если это так, замените ваш скрипт на

function onEdit(e) {
var ss, watchedSheets, startRows, watchedCols, stampCols, sheetInd;
ss = e.source.getActiveSheet();
watchedSheets = ['To Do List', 'Updates'];
startRows = [8, 5];
watchedCols = [[3, 4, 5], [2, 3]]; 
stampCols = [2, 1];
sheetInd = watchedSheets.indexOf(ss.getName());
if(sheetInd === -1 || watchedCols[sheetInd].indexOf(e.range.columnStart) === -1 
|| e.range.rowStart < startRows[sheetInd]) return;
ss.getRange(e.range.rowStart, stampCols[sheetInd])
.setValue(new Date()).setNumberFormat("DD/mm/yyyy");
}

и посмотрите, работает ли он?

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