我目前正在嘗試從選中復選框的作業表中批量移動所有行,我試圖使用“newFilterCriteria”,但我使用的那個(在線找到)檢查特定單詞,同時我想使用復選框。
到目前為止的代碼是:
獲取源頁面,宣告過濾條件
function create_filter(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Fridge"); // DECLARE THE SOURCE PAGE
var range = sheet1.getRange("A5:J"); // DECLARE THE RANGE TO BE FILTERED LATER
var filter = range.createFilter();
var Filter_Criteria1 = SpreadsheetApp.newFilterCriteria().withCriteria(true); // HERE IS THE PROBLEM, THE ORIGINAL CODE SAYS "newFilterCriteria().whenNumberGreaterThan(1000);" BUT INSTEAD OF A NUMBER, I NEED A FILTER BASED ON CHECKBOXES BEING EITHER TRUE OR FALSE
var add_filter1 = filter.setColumnFilterCriteria(1,Filter_Criteria1);
Logger.log("Filter has been added.");
var range = sheet1.getDataRange();
var new_sheet = ss.insertSheet(); // CREATE THE DESTINATION TAB
new_sheet.setName("TEST"); // NAME THE DESTINATION TAB AS "TEST"
range.copyTo(new_sheet.getRange(1,1));
filter.remove();
}
有什么建議或幫助嗎?謝謝!我試著環顧四周,但還沒有找到正確的方法來過濾復選框。
其他事情:不確定我是否可以避免迭代,因為有很多行要復制,我認為這將是一個緩慢的程序,有沒有辦法說諸如“選擇第 1 列為真的所有行”之類的查詢?
影像只是表格的一個例子。
謝謝!
uj5u.com熱心網友回復:
使用, 過濾復選框:whenTextEqualTo true
const Filter_Criteria1 = SpreadsheetApp.newFilterCriteria().whenTextEqualTo('TRUE').build()
uj5u.com熱心網友回復:
移動檢查
function myfunk() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet0");
const vs = sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
let a = [];
let d = 0;
vs.forEach((r, i) => {
if (r[0] == true) {
a.push(r)
sh.deleteRow(i 2 - d );
}
});
if (a) {
ss.insertSheet('Test').getRange(1, 1, a.length, a[0].length).setValues(a);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/389323.html
下一篇:COUNTIFS不可預測地回傳零
