[英]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.