Google 脚本:有没有办法让 getRange 具有多个不相邻的列

chr*_*zin 0 google-apps-script

我正在尝试在一个工​​作表中获取多个列并将其复制到另一个中。使用getRange 函数,有没有办法获取和复制(例如):Col1、Col3、Col7?(而且我不太乐意为此使用查询......)

谢谢 !

Coo*_*per 5

要使用它,您所要做的就是将要复制的列放入像这样的数组 [1,3,7] 中,并让它成为 copyColumns 函数的第一个参数。为了方便它的使用,创建一个中间函数可以使您不必在代码中这样做。但是这两个函数都必须存在于您的代码中。

function copySelectedColumns()
{
  copyColumns([1,3,7],'mysrc','mydes');
}

function copyColumns(columns,src,dest)
{
  var columns=(typeof(columns)!='undefined')?columns:'';
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName(src);
  var ds=ss.getSheetByName(dest);
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var uA=[];
  if(columns.length)
  {
    for(var i=0;i<vA.length;i++)
    {
      uA[i]=[];
      for(var j=0;j<vA[0].length;j++)
      {
        if(columns.indexOf(j+1)>-1)
        {
          uA[i][uA[i].length]=vA[i][j];
        }
      }
    }
    ds.getRange(1,1,uA.length,uA[0].length).setValues(uA);
  }
}
Run Code Online (Sandbox Code Playgroud)