Javascript 如何在Google Sheets for macro(Google Sheets,filter,if,else,script)中使用特定激活值空列筛选器的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

我不知道如何对if条件只使用e列过滤器。从b1到e1的4列过滤器处于激活状态。我想用if条件检查e过滤器是否为空。那么if应该执行,否则执行。否则将清空过滤器。这是不起作用的代码

        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)
,该方法将返回筛选条件o
null

对不起,我似乎误解了您的问题。你能解释一下“过滤器是空的”是什么意思吗?你的意思是它不适用于列E?你说的“应该清空过滤器”是什么意思?对于空过滤器,我指的是不包含条件的过滤器。我正在寻找一个if条件来检查e1筛选器是否不包含条件(值)。您是指筛选器条件?是的,筛选器条件。这是正确的词,我现在明白了。我修改了我的答案,希望它现在能正确回答你的问题。
  if (SpreadsheetApp.getActive().getActiveSheet().getFilter().getColumnFilterCriteria(5) == null) {