如何使用Google脚本将多个范围复制到另一个工作表中的相同位置?

时间:2019-08-17 13:46:08

标签: google-apps-script google-sheets

我想将多个范围从一张纸复制到另一张纸。

我尝试使用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);

将多范围复制到另一张纸的任何智能方法将受到赞赏。

1 个答案:

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