跳到主要内容

在Excel中打开,保存或关闭工作簿时如何清除筛选器?

假设您的工作簿中有多个包含过滤数据的工作表。 要清除所有过滤器,您需要检查不同工作表中的过滤列表,然后手动将它们一一清除。 这很烦人! 在本文中,我们将向您展示在 Excel 中打开、保存或关闭工作簿时清除过滤器的几种方法。

在Excel中打开工作簿时清除过滤器
在Excel中保存工作簿时清除过滤器
在Excel中关闭/退出工作簿时清除筛选器


在Excel中打开工作簿时清除过滤器

本节讨论打开工作簿时清除所有工作表中的筛选器。 请执行以下操作。

1.在工作簿中,您需要在打开时自动清除所有过滤器,请按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口,请双击 的ThisWorkbook 在左边 项目 窗格,然后将以下VBA代码复制并粘贴到 本工作簿(代码) 窗口。 看截图:

VBA代码:打开工作簿时清除所有过滤器

Private Sub Workbook_Open()
'Updated by Extendoffice 20221012
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.AutoFilterMode Then
            ws.ShowAllData
        End If
    Next ws
End Sub

3。 按 其他 + Q 退出键 Microsoft Visual Basic应用程序 窗口。

4。 点击 文件 > 另存为。 在弹出 另存为 对话框中,指定一个文件夹来保存此工作簿,然后根据需要在其中命名 文件名 框,然后选择 Excel启用宏的工作簿 选项从 保存类型 下拉列表,最后单击 保存 按钮。

从现在开始,当打开这个启用宏的工作簿时,这个工作簿中的所有过滤器都会被自动清除。


在Excel中保存工作簿时清除过滤器

您可以在每次保存时清除当前工作簿中的所有过滤器。

1.在工作簿中,您需要自动清除所有过滤器,请按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口,请双击 的ThisWorkbook 在左边 项目 窗格,然后将以下VBA代码复制并粘贴到 本工作簿(代码) 窗口。 看截图:

VBA代码:保存工作簿时清除过滤器

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Updated by Extendoffice 20221012
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.AutoFilterMode Then
            ws.ShowAllData
        End If
    Next ws
End Sub

3。 按 其他 + Q 退出键 Microsoft Visual Basic应用程序 窗口。

从现在开始,保存工作簿时,所有筛选器将自动清除。


在Excel中关闭/退出工作簿时清除筛选器

在最后一节中,我们将向您展示在关闭或退出工作簿时如何清除工作表中的所有过滤器。

1.打开您需要自动清除所有过滤器的工作簿,然后按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口,请双击 的ThisWorkbook 在左边 项目 窗格,然后将以下VBA代码复制并粘贴到 本工作簿(代码) 窗口。 看截图:

VBA代码:关闭/退出工作簿时,清除工作表中的所有筛选器

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.AutoFilterMode Then
            ws.AutoFilterMode = False
        End If
    Next ws
End Sub

备注:如果只想清除当前工作表中的过滤器,请使用下面的VBA代码。

VBA代码:关闭工作簿时清除活动工作表中的筛选器

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Updated by Extendoffice 20221012
    Dim ws As Worksheet
    Set ws = ActiveSheet
        If ws.AutoFilterMode Then
            ws.ShowAllData
        End If
End Sub

3。 按 其他 + Q 退出键 Microsoft Visual Basic应用程序 窗口。

从现在开始,单击工作簿中的“关闭”按钮后,将自动清除所有筛选器。


相关文章:

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (6)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hoe kan ik wel de "filterknoppen" behouden?
This comment was minimized by the moderator on the site
Hi Tuur,
The VBA codes in the post have been updated. Sorry for the inconvenience.
This comment was minimized by the moderator on the site
I tried the Clear all filters across worksheets when closing/exiting workbook but it didn't work at all, is there anything we need to?
This comment was minimized by the moderator on the site
Hi,
No other operations are required except the steps we shown. Which Excel version are you using?
This comment was minimized by the moderator on the site
This solution doesn't "clear" the AutoFilters, it removes them completely.
To reset the filters and retain them for the next session, substitute ws.AutoFilter.ShowAllData for ws.AutoFilterMode = False
This comment was minimized by the moderator on the site
Thank you for this comment! This is exactly what I needed for my spreadsheet. Much appreciated!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations