Javascript 如何在Google Sheets for macro(Google Sheets,filter,if,else,script)中使用特定激活值空列筛选器的if条件?
我不知道如何对if条件只使用e列过滤器。从b1到e1的4列过滤器处于激活状态。我想用if条件检查e过滤器是否为空。那么if应该执行,否则执行。否则将清空过滤器。这是不起作用的代码Javascript 如何在Google Sheets for macro(Google Sheets,filter,if,else,script)中使用特定激活值空列筛选器的if条件?,javascript,if-statement,google-sheets,filter,spreadsheet,Javascript,If Statement,Google Sheets,Filter,Spreadsheet,我不知道如何对if条件只使用e列过滤器。从b1到e1的4列过滤器处于激活状态。我想用if条件检查e过滤器是否为空。那么if应该执行,否则执行。否则将清空过滤器。这是不起作用的代码 function myFunction() { if (SpreadsheetApp.getActive().getActiveSheet().getRange('E1').getFilter() == null) { var spreadsheet = Sp
function myFunction() {
if (SpreadsheetApp.getActive().getActiveSheet().getRange('E1').getFilter() == null) {
var spreadsheet = SpreadsheetApp.getActive();
var criteria = SpreadsheetApp.newFilterCriteria()
.whenCellNotEmpty()
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
spreadsheet.getRange('E1').activate();
spreadsheet.getCurrentCell().offset(2, 0).activate();
}
else {
var spreadsheet = SpreadsheetApp.getActive();
var criteria = SpreadsheetApp.newFilterCriteria()
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);
spreadsheet.getRange('B1').activate();
spreadsheet.getCurrentCell().offset(2, 0).activate();
}
}
要验证筛选器是否包含E列中的列筛选器准则
修改行
if (SpreadsheetApp.getActive().getActiveSheet().getRange('E1').getFilter() == null)
到
说明:
如果筛选器应用于整个电子表格/数据范围,包括列E-getFilter()==null)
将永远无法满足,即使列E不存在筛选器条件
相反,您需要使用方法
getColumnFilterCriteria(5)
,该方法将返回筛选条件onull
对不起,我似乎误解了您的问题。你能解释一下“过滤器是空的”是什么意思吗?你的意思是它不适用于列E?你说的“应该清空过滤器”是什么意思?对于空过滤器,我指的是不包含条件的过滤器。我正在寻找一个if条件来检查e1筛选器是否不包含条件(值)。您是指筛选器条件?是的,筛选器条件。这是正确的词,我现在明白了。我修改了我的答案,希望它现在能正确回答你的问题。
if (SpreadsheetApp.getActive().getActiveSheet().getFilter().getColumnFilterCriteria(5) == null) {