我正在尝试根据此处解决的问题进行构建:
How do you copy a range and paste only rows with values into another sheet?
我想更大范围地执行此操作(在名为“ RGDR”的工作表上为O1:X500),仅复制其中包含值的行,然后将其粘贴到下一个空白行的新工作表(“ ACTUALFUNC”)中
工作表在这里:https://docs.google.com/spreadsheets/d/1vvXQxBGffwBAjbXKqx4N-ZFcX40wuV7gg9flb6STWtA/edit?usp=sharing
下面是我已经尝试过的代码。它只会带来数据的第一列。
function copyRangeNoEmpties(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('RGDR');
var copyToSheet=ss.getSheetByName('ACTUALFUNC');
var copyFromRange=sh.getRange('O1:X500');
var vA=copyFromRange.getValues();
var oA=[];
for(var i=0;i<vA.length;i++)
{
if(vA[i][0])
{
oA.push([vA[i][0]]);
}
}
var copyToRange=copyToSheet.getRange(1,1,oA.length,1);
copyToRange.setValues(oA);
}
希望通过每天运行一次来建立持续的结果列表。任何帮助或意见将不胜感激。
答案 0 :(得分:0)
这会将您的数据附加到目标表的下一行。
function copyRangeNoEmpties(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('RGDR');
var des=ss.getSheetByName('ACTUALFUNC');
var src=sh.getRange('O1:X500');
var vA=src.getValues();
for(var i=0;i<vA.length;i++) {
if(vA[i].join("")) {
des.appendRow(vA[i]);
}
}
}