【问题标题】:Filter and unfilter with the same function in Google Sheets在 Google 表格中使用相同功能进行过滤和取消过滤
【发布时间】:2019-04-02 19:06:36
【问题描述】:

我创建了一个过滤器,以今天的日期为条件按日期列过滤数据范围。

我想调用同一个按钮(使用此函数)来过滤和取消过滤范围。

当我按下按钮(调用一个函数)一次时我需要 - 它会过滤。

我按下它 - 取消过滤。

有没有可能?

var sortRange = sheet.getRange(3, 1, 200, 6);

var filter = sortRange.createFilter()

var criteria = SpreadsheetApp.newFilterCriteria().whenDateEqualTo(new Date())

filter.setColumnFilterCriteria(2, criteria.build())

【问题讨论】:

    标签: google-apps-script filter google-sheets


    【解决方案1】:

    这已经内置了——你可以查询Sheet for the current filter。如果已经设置了一个,那么您可以轻松地将其删除。否则,您将收到null 并可以根据需要创建BasicFilter

    function foo() {
      const sheet = SpreadsheetApp.getActiveSheet();
      var filter = sheet.getFilter();
      if (filter) {
        filter.remove();
      } else {
        /** create your filter */
      }
    }
    

    【讨论】:

    • 完美解决方案!成功了,谢谢!如此简单优雅))
    【解决方案2】:

    试试这样的:

    function toFilterOrNotToFilter() {
      var onoff=PropertiesService.getScriptProperties().getProperty('on') || 'off';
      PropertiesService.getScriptProperties().setProperty('on',(onoff=='on')?'off':'on');
      var sortRange = sheet.getRange(3, 1, 200, 6);
      if(onoff=='on') {
        //set filter
      }else{
        //don't set filter  
      }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多