复制范围并仅将具有值的行粘贴到下一个空白行的另一张纸中?

时间:2019-01-02 21:59:57

标签: google-apps-script

我正在尝试根据此处解决的问题进行构建:

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

希望通过每天运行一次来​​建立持续的结果列表。任何帮助或意见将不胜感激。

1 个答案:

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