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

Google apps script 如何使用google脚本将多个范围复制到另一个工作表中的同一位置?,google-apps-script,google-sheets,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("

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

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

任何将多个范围复制到另一张图纸上的智能方法都将受到欢迎。

因为范围列表是范围的集合,所以您必须在集合中循环并复制每个范围

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);
  }
}
功能测试(){
试一试{
var spread=SpreadsheetApp.getActiveSpreadsheet();
var sheet=spread.getSheetByName(“Sheet1”);
var rlist=sheet.getRangeList([“A1:A5”、“B7:B10”、“C12:C16”]);
sheet=spread.getSheetByName(“Sheet2”);

对于(var i=0),你认为什么是“智能方式”?更少的代码——你最好使用谷歌表高级服务(谷歌Tabl API)吗??请阅读我认为@Rubén的评论对您的情况很有用。如果您想使用范围列表的值副本,那么这个气体库如何?这个库就像使用API表增强范围列表的包装器。如果这不是您想要的方向,我道歉。