Добавление строк
Ключ к ситуациям, в которых при добавлении или удалении строк используется счетчик для отслеживания изменения количества строк. При использовании getDataRange()
индекс i
обычно на единицу меньше номера строки, пока он не начнет добавлять строки, поэтому счетчик добавления a
ликвидирует разрыв между индексом фиксированного 2d-массива v и строками, которые добавляются между старые строки, которые мы читаем, чтобы собрать 2d массив v в строке rg.getValues()
.
function addingRows() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var v=rg.getValues();
var a=0;
//r[3] is column 4
//The forEach is appropriate here since we know we have to iterate through the entire array with no need for breaking out
v.forEach(function(r,i){
if(r[3]>0) {
sh.insertRowsAfter(i+1+a,r[3]);//i+1+a is the row number
a+=r[3];//increased by the number of rows which were just added
}
});
}
Sheet.insertRowsAfter
Анимация: