如何在Google AppScript中添加额外的过滤器函数来引用列并搜索文本"TMO"



这是我用特定颜色搜索的代码。然后我也想用K列中的TMO这个词进行过滤

function TmoSuspended () {
var ss = SpreadsheetApp.getActive().getSheetByName("Boost Prod Account Info")
/*var cell_color = ss.getRange("A4").getBackground(); #fff2cc
Logger.log(cell_color);*/
var last_row = ss.getLastRow();
var array = ss.getRange(1, 1, last_row).getBackgrounds();
var allRows = ss.getRange("A:A");

ss.unhideRow(allRows);
for (i=8 ;i <= last_row;i++){
if(array[i] != "#f1c232")
{
ss.hideRows(i+1)};
}
}

正如我从您的担忧中了解到的,您可以尝试以下代码:

这将隐藏列A中具有颜色#f1c232的行;TMO";K栏中的单词

尝试:

function TmoSuspended() {
var ss = SpreadsheetApp.getActive().getSheetByName("Boost Prod Account Info")
var array = ss.getRange("A:A").getBackgrounds();
//Checker of color (""#f1c232"") on column A  and return true if not equal to blanks and word 'TMO'
try { var res = array.map((color, index) => { return color[0] == "#f1c232" ? [true, ss.getRange('K:K').getValues().map(x => { return x != '' && x.toString().match(/TMO/gm) })[index]].flat() : false }) } catch { }
//This will return rows that are not equal to #f1c232 and "TMO"
console.log(res.map((x,index) => {return x[0] == true && x[1] == "TMO" ? ss.hideRows(index+1) : null}))
}

如果这有帮助,请告诉我。

最新更新