我工作的一个谷歌电子表格将使用脚本数据中的每一行从已在列K“完成在过去的30天”到另一个工作表一个工作表复制。
由“表”我的意思是每一个标签。 源标签是“阿利”目的地选项卡是目前“ArleysSandbox”每一行都有LL列,AK。 整个行应结转。 在片材的总的行数将随时间增加。 我每次运行该脚本,我希望它清除“ArleysSandbox”首先是现有数据。 列K,它说:“做在过去30天”是一个公式。 我最终还是会希望从多张拉和编译的沙盒片。
我用的是从旧的论坛为起点后却卡住了,由于我缺乏知识。 http://productforums.google.com/forum/#!msg/apps-script/FNGzVkEqZh4/x8WCYtjvpI8J在此先感谢您的任何建议。
//Find current filter and remove
var currentFilter = master_sheet.getFilter();
if ( currentFilter !== null ) {
master_sheet.getFilter().remove();
}
var master_lr=master_sheet.getLastRow();
var master_lc=master_sheet.getLastColumn();
//Apply filter here
master_sheet.getRange(1,1,master_lr,master_lc).createFilter();
var criteria = SpreadsheetApp.newFilterCriteria().setHiddenValues(['Reject','Approved']).build();
master_sheet.getFilter().setColumnFilterCriteria(45, criteria);
master_sheet.getFilter().getRange().copyTo(harmonize_approvers.getRange(1,1,master_lr-1,master_lc), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
不要觉得被冒犯,但我认为这个论坛是不是市场的地方,你可以得到免费的应用程序,它为我们带来答案永世试图通过自己得到的结果。
这就是说,这里是一个“skeletton”应该把你在正确的轨道,我试图与发生了什么事的注释来解释。 (没有测试它,也许它需要调试)
function copy2(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = SpreadsheetApp.setActiveSheet(ss.getSheets()[0]); selects the first sheet in your spreadsheet
var data=sh.getDataRange().getValues();// data is a 2D array, index0 = col A
// so column k is index 10
var target=new Array();// this is a new array to collect data
for(n=0;n<data.length;++n){ // iterate in the array, row by row
if (data[n][10]=="Done In The Past 30 Days"){ ;// if condition is true copy the whole row to target
taget.push(data[n]);// copy the whole row
}
}
if(target.length>0){// if there is something to copy
var sh2=SpreadsheetApp.setActiveSheet(ss.getSheets()[1]); //second sheet of your spreadsheet
sh2.getRange(1,1,target.length,target[0].length).setValues();// paste the selected values in the 2cond sheet in one batch write
}
}
文章来源: Copy every row of Data from one sheet that has a given value in column K to another sheet