You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:13:29