使用Google表格中的相同功能过滤和取消过滤

时间:2019-04-02 19:06:36

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

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

我想调用同一按钮(使用此功能)以过滤和取消过滤范围。

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

我将其按回-取消过滤。

有可能吗?

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

var filter = sortRange.createFilter()

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

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

2 个答案:

答案 0 :(得分:2)

这已内置-您可以查询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 */
  }
}

答案 1 :(得分:0)

尝试这样的事情:

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  
  }

}