>我创建了一个过滤器,该过滤器使用今天日期的条件按日期列过滤数据范围。
我想调用相同的按钮(使用此函数(来过滤和取消过滤范围。
当我按下按钮(调用函数(一次时,我需要 - 它会过滤。
我把它按回去 - 取消过滤器。
以某种方式可能吗?
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
}
}