В настоящее время я пытаюсь автоматизировать лист, используя 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);
}
}
}
}