我正在尝试在工作表中获取多个列并将其复制到另一个中。 使用getRange function,有没有办法获取和复制(例如): Col1,Col3,Col7? (而且我真的很高兴为此使用查询...)
谢谢!
答案 0 :(得分:4)
要使用它,您只需将要复制的列放入这样的数组[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);
}
}