2017-02-12 105 views
0

所以我有一张大约有800行的工作表。我需要做的是复制和粘贴每一个120次。我希望有一种自动化的方法可以一次性完成此操作,而不是手动完成此操作。我已经搜索了一些东西,但是我发现一切都是有条件地复制行的。谷歌工作表在同一张表中复制并粘贴120次

我不需要条件。我只需要全部,800行中的每一行都要复制120次。

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

干杯

+0

您可以编写一个脚本来做到这一点。你想如何复制行?刚刚添加到最后? – SpiderPig

+0

我认为这将是一个脚本。然而,我自己无法执行。我想要将这些行克隆到原始文件下。 – sean

+0

你为什么不能执行它? – SpiderPig

回答

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)); 
} 
} 

此外代替使用与range.copyTo(目的地)的环糊120倍,可以扩大目标范围至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)); 
+0

我今晚会检查这个 – sean

+0

并非常感谢你 – sean

+0

我改变了这个正确答案,因为它确实完成了我在我的问题中所提到的所有内容。特别感谢@SpiderPig让球从正确的方向开始。干杯!希望这有助于未来的人 – sean

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)); 
    } 
} 
+0

嘿所以这确实奏效。但它克隆了最后一行下的行。所以下一个800会从第801行开始克隆。所以我必须手动将克隆放在原始行下。所以如果第一行有“我的名字”,第二行是“你的名字”,那么这个脚本就会打印出“我的名字,你的名字,我的名字,你的名字”而不是“我的名字,我的名字,你的名字,你的名字”。我打算将它标记为正确的,因为它确实可以克隆。谢谢@SpiderPig。如果有办法让它按照上面所述的方式打印出来。请告诉我。干杯! – sean

相关问题