所以我有一张约800行的表格。我需要做的是复制和粘贴每个120次。而不是手动执行此操作,我希望有一种自动方式一次性完成此操作。我搜索了一些东西,但我发现的一切都与有条件地复制行有关。
我不需要条件。我只需要所有,800行中的每一行都要重复120次。
非常感谢任何帮助或想法。
干杯
答案 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));
}
}