Google工作表会在同一张表中复制和粘贴行120次

时间:2017-02-12 02:28:06

标签: google-sheets

所以我有一张约800行的表格。我需要做的是复制和粘贴每个120次。而不是手动执行此操作,我希望有一种自动方式一次性完成此操作。我搜索了一些东西,但我发现的一切都与有条件地复制行有关。

我不需要条件。我只需要所有,800行中的每一行都要重复120次。

非常感谢任何帮助或想法。

干杯

2 个答案:

答案 0 :(得分:2)

修改的@SpiderPig代码以交错方式克隆

function duplicateRows() {
      var sheet = SpreadsheetApp.getActiveSheet()
      var numRows = sheet.getLastRow()
      var numColumns = sheet.getLastColumn()
      var numberOfClones = 120
 for(var i = 0; i < numRows; i++) {
    range = sheet.getRange((i*numberOfClones)+ 1, 1, 1, numColumns);
    sheet.insertRows((i*numberOfClones)+ 2, numberOfClones-1)
    range.copyTo(sheet.getRange((i*numberOfClones)+ 2 , 1, numberOfClones-1, numColumns));
 }
}

此外,您可以将目标范围扩展为120行,而不是使用带有range.copyTo(目标)的循环粘贴120次。它会自动在整个范围内粘贴相同的值。

所以不是这个

for(var i = 1; i <= 120; i++) {
    range.copyTo(sheet.getRange(numRows * i + 1, 1, numRows, numColumns));
  }

你可以做一次

    range.copyTo(sheet.getRange(numRows * i + 1, 1, 120*numRows, numColumns));

答案 1 :(得分:1)

这是一个脚本,它将复制当前工作表中的所有行120次。

function duplicateRows() {
  var sheet = SpreadsheetApp.getActiveSheet(),
      numRows = sheet.getLastRow(),
      numColumns = sheet.getLastColumn(),
      range = sheet.getRange(1, 1, numRows, numColumns);
  for(var i = 1; i <= 120; i++) {
    range.copyTo(sheet.getRange(numRows * i + 1, 1, numRows, numColumns));
  }
}