繁体   English   中英

Google Sheets 脚本基于 filterLogic 传输后删除工作表范围

[英]Google Sheets script remove sheet range after transferring based on filterLogic

我有两张纸, 1. sourceData 2. Done sourceData 有一列标记为“ACTIVE”或一个是“Date”值。 我想要做的是将那些列标记为 ACTIVE 的行移动到另一个名为“完成”的工作表中。 我在这里编写了一个用于传输数据的脚本,但是如果我按计划运行此脚本,则工作表“ACTIVE”中的行将一遍又一遍地传输。 一旦它们被转移,有没有办法删除这些行? 或者将“ACTIVE”的单元格值更改为其他值以使其无法通过 filterLogic? 欢迎任何帮助,谢谢!

function tsfActive() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var pr = ss.getSheetByName("sourceData");
  var ts = ss.getSheetByName("DONE");
  var originalData = pr.getRange(2,1,pr.getLastRow()-1,3).getValues();  
  var data = originalData.filter(filterLogic);
    Logger.log(data);
  ts.getRange(ts.getLastRow()+1,1,data.length,3).setValues(data);
}
  var filterLogic = function(item){    
    if(item[1] === "ACTIVE"){
      return true;
    }
    else{
      return false;
    }
  }

我认为这样做:

function tsfActive() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var pr = ss.getSheetByName("sourceData");
  var ts = ss.getSheetByName("DONE");
  var od = pr.getRange(2,1,pr.getLastRow()-1,3).getValues();  
  var data=od.map(function(r){return r;}).filter(function(r){return r[1]=='ACTIVE'});
  Logger.log(data);
  ts.getRange(ts.getLastRow()+1,1,data.length,3).setValues(data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM