Google Spreadsheet中基于单个单元格值的重复行

时间:2019-10-20 21:06:57

标签: google-apps-script google-sheets google-sheets-api information-hiding

我正在尝试以编程方式复制Google电子表格中的行。我希望重复行的次数基于一个单个单元格的值。

例如:

单元格L10包含值45 第23行包含不同的值(值列表,公式,vlookup等),我想重复此行,将所有公式加载44次,正好在第一个之上,因此从第23行到第67行有45行。

我尝试了请求中提到的代码,但有非常类似的问题,但是无法适应我的需求。

enter image description here

1 个答案:

答案 0 :(得分:0)

我在我这边创建了一个样本表,如下所示:

my sample sheet

然后我创建了以下脚本:

function insertXRows() {
  var sheets = SpreadsheetApp.getActiveSheet();
  var count = sheets.getRange(3,6).getValue(); //F3
  Logger.log(count);

  //Get my to be copied line
  var copyLine = sheets.getRange(9,2,1,7); //Fix these values depending on your row that you want to copy.
  while(count>0) {
    Logger.log(count);
    //Get last line of my data
    var lastRow = sheets.getDataRange().getValues().length;

    var newRow = sheets.getRange(lastRow+1, 2, 1, 7); //Fix these values depending on your row that you want to copy.
    for (var i = 0; i<copyLine.getValues()[0].length; i++) {
      if (copyLine.getFormulas()[0][i]!="") { //Check formulas first
        sheets.getRange(newRow.getRow(), newRow.getColumn()+i).setFormula(copyLine.getFormulas()[0][i]);
      } else if (copyLine.getValues()[0][i]!="") {
        sheets.getRange(newRow.getRow(), newRow.getColumn()+i).setValue(copyLine.getValues()[0][i]);
      }
    }
    count--;
  }
}

希望这会有所帮助!

相关问题