所以我有一张大约有800行的工作表。我需要做的是复制和粘贴每一个120次。我希望有一种自动化的方法可以一次性完成此操作,而不是手动完成此操作。我已经搜索了一些东西,但是我发现一切都是有条件地复制行的。谷歌工作表在同一张表中复制并粘贴120次
我不需要条件。我只需要全部,800行中的每一行都要复制120次。
任何帮助或想法,非常感谢。
干杯
所以我有一张大约有800行的工作表。我需要做的是复制和粘贴每一个120次。我希望有一种自动化的方法可以一次性完成此操作,而不是手动完成此操作。我已经搜索了一些东西,但是我发现一切都是有条件地复制行的。谷歌工作表在同一张表中复制并粘贴120次
我不需要条件。我只需要全部,800行中的每一行都要复制120次。
任何帮助或想法,非常感谢。
干杯
改性@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));
下面是一个脚本,将所有行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));
}
}
嘿所以这确实奏效。但它克隆了最后一行下的行。所以下一个800会从第801行开始克隆。所以我必须手动将克隆放在原始行下。所以如果第一行有“我的名字”,第二行是“你的名字”,那么这个脚本就会打印出“我的名字,你的名字,我的名字,你的名字”而不是“我的名字,我的名字,你的名字,你的名字”。我打算将它标记为正确的,因为它确实可以克隆。谢谢@SpiderPig。如果有办法让它按照上面所述的方式打印出来。请告诉我。干杯! – sean
您可以编写一个脚本来做到这一点。你想如何复制行?刚刚添加到最后? – SpiderPig
我认为这将是一个脚本。然而,我自己无法执行。我想要将这些行克隆到原始文件下。 – sean
你为什么不能执行它? – SpiderPig