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



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

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

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

我把它按回去 - 取消过滤器。

以某种方式可能吗?

var sortRange = sheet.getRange(3, 1, 200, 6);
var filter = sortRange.createFilter()
var criteria = SpreadsheetApp.newFilterCriteria().whenDateEqualTo(new Date())
filter.setColumnFilterCriteria(2, criteria.build())

这已经是内置的 - 您可以查询当前过滤器的Sheet。如果已经设置了一个,那么您可以轻松将其删除。否则,您将收到null,并可以根据需要创建BasicFilter

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

尝试这样的事情:

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  
  }
}

最新更新