我想将多个范围从一张纸复制到另一张纸。
我尝试使用getRangelist函数,但似乎并非出于此目的而设计
var rangeList = SpreadsheetApp.getActive().getRangeList(['B2:i8','B10:i16','B18:i24', 'B26:i32', 'B34:i40']);
var copyrange = SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName("ENTRATE MAIN 2")
.getRangeList(['B2:i8', 'B10:i16','B18:i24', 'B26:i32', 'B34:i40']);
rangeList.copyTo(rangelist);
将多范围复制到另一张纸的任何智能方法将受到赞赏。
答案 0 :(得分:1)
由于RangeList是范围的集合,因此您必须遍历该集合并复制每个范围。
function test () {
try {
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spread.getSheetByName("Sheet1");
var rlist = sheet.getRangeList(["A1:A5", "B7:B10", "C12:C16"]);
sheet = spread.getSheetByName("Sheet2");
for( var i=0; i<rlist.getRanges().length; i++ ) {
var r1 = rlist.getRanges()[i];
var r2 = sheet.getRange(r1.getA1Notation());
r1.copyTo(r2);
}
}
catch(err) {
Logger.log(err);
}
}