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

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

在本文中,我们将了解如何在打开/关闭或保存工作表时删除筛选器。因为每当工作表中应用筛选器时,它会随文件一起保存,一直保留到手动删除。它们的过滤器可能会被误解为工作表中的缺失数据。在相应工作表中应用一些Visual Basic代码后,可以自动删除筛选器。以下是要合并的VBA代码。

  • 打开工作簿时清除筛选器

  • 保存工作簿时清除筛选器

  • 关闭工作簿时清除筛选器

打开工作簿时清除筛选器

步骤1 - 我们取了样本工作簿,其中对数据应用了一些筛选器。

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

步骤2 - 现在从键盘上按 Alt+F11 键,将打开 Microsoft Visual Basic for Applications 窗口。

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

可以使用如下所示的Developer​​选项卡打开上述编辑器 –

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

步骤3 - 在 Microsoft Visual Basic for Applications 窗口中,双击在项目面板中可用的 ThisWorkbook。

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

步骤4 - 现在复制以下VBA代码,并在 ThisWorkbook(Code)窗口中输入相同的代码。

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

Private Sub Workbook_Open() / 设置作用域,使外部模块中的子程序无法调用该特定子程序,同时表示打开工作簿的事件。

Dim ws As Worksheet / 返回一个仅包含工作表的Sheets集合对象。

For Each ws In Worksheets / 指定工作表或工作簿的每个工作表

If ws.AutoFilterMode Then / 条件,以检查是否在任何工作表中应用任何筛选器

ws.AutoFilterMode = False / 然后将自动筛选器模式设置为false并删除所有已应用的筛选器。

End If / 如果上述条件为false,则移至下一个条件。

Next ws / 检查下一个工作表.

End Sub / 子程序结束.

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

步骤5 - 输入代码后,按键盘上的 Alt+Q 键以关闭 Microsoft Visual Basic for Applications 窗口 。

步骤6 - 接下来,保存文件的格式为 Excel宏启用的工作簿

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

步骤7 - 从下一次开始打开工作簿时,筛选器将自动删除。

保存工作簿时清除筛选器

步骤1 - 当您想要在保存工作表时删除筛选器时使用此功能。

步骤2 - 按照“打开工作簿时清除筛选器”的步骤2和步骤3打开 Microsoft Visual Basic for Applications 窗口。

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

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

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

步骤3 - 将以下代码粘贴到 ThisWorkbook 中。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) / 设置范围,这样外部模块中的子程序就无法调用特定的子程序,即一个工作簿保存时触发的事件

Dim ws As Worksheet / 返回一个只包含工作表的Sheets集合对象。

For Each ws In Worksheets / 指定工作表或工作簿的每个工作表。

If ws.AutoFilterMode Then / 检查任何工作表中是否应用了筛选条件的条件。

ws.AutoFilterMode = False / 然后将自动筛选模式设置为false并删除所有已应用的筛选器。

End If / 如果以上条件为false,则转到下一个条件。

Next ws / 检查下一个工作表。

End Sub / 子程序结束。

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

第四步 - 现在再次按照 打开工作簿时清除筛选器 的步骤5和6,保存文件。一旦文件保存,筛选器将被删除,无论何时打开文件都无法使用。

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

关闭工作簿时清除筛选器

第一步 - 当你想要在关闭工作表时移除筛选器时,使用此功能。

第二步 - 按照步骤2和3进行 打开工作簿时清除筛选器 操作,在 ThisWorkbook 中粘贴以下代码。

Private Sub Workbook_BeforeClose(Cancel As Boolean) / 设置范围,这样外部模块中的子程序就无法调用特定的子程序,即工作簿关闭时触发的事件。

Dim ws As Worksheet / 返回一个只包含工作表的Sheets集合对象。

For Each ws In Worksheets / 指定工作表或工作簿的每个工作表。

If ws.AutoFilterMode Then / 检查任何工作表中是否应用了筛选条件的条件。

ws.AutoFilterMode = False / 然后将自动筛选模式设置为false并删除所有已应用的筛选器。

End If / 如果以上条件为false,则转到下一个条件。

Next ws / 检查下一个工作表。

End Sub / 子程序结束。

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

第三步 -现在再次按照 打开工作簿时清除筛选器 的步骤5和6,保存文件。一旦文件关闭,筛选器将被删除,而当你再次打开文件时,它们将无法使用。

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

结论

最后,这三种代码可以同时输入到VBA编辑器中,以在工作簿中应用更改。这些是最有用和可靠的从工作簿中删除所有类型筛选器的方法。希望这能帮助你解决问题。继续学习,不断探索Excel。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程