如何清除Google Sheets筛选规则且保留筛选器?(Google Apps Script)
保留筛选器同时清除所有筛选规则的快捷方法
嘿,我之前也碰到过一模一样的需求!想要留着表格的筛选器但清空所有已设置的筛选规则,确实不能用filter.remove()(这会直接把筛选器整个删掉),不过我们可以通过逐个清除各列的筛选条件来实现目标。
这里有个可行的脚本方案:
function clearFilterRulesPreserveFilter() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const filter = sheet.getFilter(); // 如果当前表格没有筛选器,直接退出函数避免报错 if (!filter) return; // 获取筛选器覆盖的列范围 const filterRange = filter.getRange(); const firstCol = filterRange.getColumn(); const lastCol = filterRange.getLastColumn(); // 遍历每一列,清除对应的筛选条件 for (let col = firstCol; col <= lastCol; col++) { filter.setColumnFilterCriteria(col, null); } }
代码说明:
- 先获取当前工作表和筛选器对象,第一步就判断筛选器是否存在,避免无筛选器时触发错误
- 通过
filter.getRange()拿到筛选器覆盖的整个区域,从而确定需要处理的列范围 - 循环遍历每一列,用
setColumnFilterCriteria(col, null)把该列的筛选条件设为null——这样会清空该列的所有筛选规则,但筛选器本身会完整保留在表格上
执行这段代码后,你会看到筛选器还在原来的位置,但所有列的筛选规则都被清空了,完全符合你的需求~
内容的提问来源于stack exchange,提问作者Max Makhrov
相关产品推荐
相关产品推荐

