Скрипты Google Sheets для добавления строк на основе значения ячейки - PullRequest
0 голосов
/ 18 января 2020

Может кто-нибудь помочь мне с сценарием

Я хочу добавить 9 строк после первой строки, 4 строки после второй строки, в основном добавляя строки на основе значения столбца D, упомянутого на скриншоте

enter image description here

1 Ответ

0 голосов
/ 18 января 2020

Добавление строк

Ключ к ситуациям, в которых при добавлении или удалении строк используется счетчик для отслеживания изменения количества строк. При использовании 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

Анимация:

enter image description here

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