Скрипт приложений: вставка строк, когда ячейка пуста - PullRequest
0 голосов
/ 10 июля 2020

В настоящее время я пытаюсь автоматизировать лист, используя for-l oop, который вставляет строки в указанный диапазон c, когда ячейка в диапазоне пуста. Пока что это вроде работает в том смысле, что строки добавляются, но не всегда в нужных местах. По мере того, как for-l oop работает, кажется, что он добавляет строки в лист на основе версии до начала for-l oop, er go лист не обновляется как for-l oop вносит изменения, er go строк вставляются как попало. Есть ли способ вставить строки в правильные места? Мой друг предложил методы рекурсии, но я не совсем уверен, что понимаю, что он имеет в виду. Любая помощь приветствуется.

function setUpTrigger() {
  ScriptApp.newTrigger('operationsTriggerFranz')
       .forSpreadsheet('1nbqO5aIXitPma_Esz1uIltowAvU0NRhHN4J8yypYdcY')
       .onEdit()
       .create();
}

function operationsTriggerFranz(e) {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var inOperations = ss.getSheetByName('Operations');
  var inGeneral = ss.getSheetByName('General');
  var monthlyKPI = e.value;
  var operationsKPIs = inOperations.getRange("D5:D42");
  var operationsKPIList = operationsKPIs.getValues();
  var editLocation = e.range.getSheet();
 
  if (editLocation.getName() === "Operations"){
      if (monthlyKPI.indexOf("1") >= 0 || monthlyKPI.indexOf("2") >= 0 || monthlyKPI.indexOf("3") >= 0 || monthlyKPI.indexOf("4") >= 0 || monthlyKPI.indexOf("5") >= 0 || monthlyKPI.indexOf("6") >= 0 || monthlyKPI.indexOf("7") >= 0 || monthlyKPI.indexOf("8") >= 0 || monthlyKPI.indexOf("9") >= 0 || monthlyKPI.indexOf("10") >= 0) {
        for (var row = 0; row<=operationsKPIList.length; row++) {
          if (operationsKPIList[row] == "i miss school")  
            inOperations.insertRowBefore(row+4);
          }
      }
  }
}

1 Ответ

0 голосов
/ 10 июля 2020

Попробуйте следующее:

Вам также необходимо добавить в строку вставки.

введите описание изображения здесь

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