如何在 Excel 中開啟、儲存或關閉工作簿時清除篩選器?
本文將學習如何在開啟、關閉或儲存工作表時移除篩選器。因為每當在工作表中應用篩選器時,它都會與檔案一起儲存,並保持不變,直到手動移除。這些篩選器可能會被誤解為工作表中的缺失資料。透過在相應工作表中應用一些 Visual Basic 程式碼,可以自動移除篩選器。以下是為此任務應包含的 VBA 程式碼。
開啟工作簿時清除篩選器
儲存工作簿時清除篩選器
關閉工作簿時清除篩選器
開啟工作簿時清除篩選器
步驟 1- 我們以一個應用了幾個資料篩選器的示例工作簿為例。

步驟 2- 現在按鍵盤上的Alt+F11 鍵,將開啟Microsoft Visual Basic for Applications視窗。

也可以使用“開發工具”選項卡開啟上述編輯器,如下所示:

步驟 3- 在Microsoft Visual Basic for Applications視窗中,雙擊專案面板中的ThisWorkbook。

步驟 4- 現在複製下面的 VBA 程式碼,並將其輸入到ThisWorkbook (程式碼)視窗中。

Private Sub Workbook_Open() / 設定作用域,以便外部模組中的子例程無法呼叫該特定子例程,也是工作簿開啟時的事件。
Dim ws As Worksheet / 返回一個 Sheets 集合物件,該物件僅包含工作表
For Each ws In Worksheets / 指定工作表或工作簿的每個工作表
If ws.AutoFilterMode Then / 條件:檢查任何工作表中是否應用了任何篩選器
ws.AutoFilterMode = False / 然後將自動篩選器模式設定為 false 並移除所有應用的篩選器。
End If / 如果上述條件為假,則轉到下一個條件。
Next ws / 檢查下一個工作表。
End Sub / 子例程結束。

步驟 5- 輸入程式碼後,按鍵盤上的Alt+Q 鍵關閉Microsoft Visual Basic for Applications視窗。
步驟 6- 接下來,將檔案儲存為啟用宏的工作簿格式。

步驟 7- 從下一次開始,每當您開啟工作簿時,篩選器都將自動移除。
儲存工作簿時清除篩選器
步驟 1- 當您想要在儲存工作表時移除篩選器時,可以使用此功能。
步驟 2- 按照“開啟工作簿時清除篩選器”中的步驟 2 和 3 開啟Microsoft Visual Basic for Applications視窗。



步驟 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 / 如果上述條件為假,則轉到下一個條件。
Next ws / 檢查下一個工作表。
End Sub / 子例程結束。

步驟 4- 現在再次按照“開啟工作簿時清除篩選器”中的步驟 5 和 6 儲存檔案。儲存檔案後,篩選器將被移除,並且在您開啟檔案時將不可用。

關閉工作簿時清除篩選器
步驟 1- 當您想要在關閉工作表時移除篩選器時,可以使用此功能。
步驟 2- 按照“開啟工作簿時清除篩選器”中的步驟 2 和 3 開啟Microsoft Visual Basic for Applications視窗。並將以下程式碼貼上到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 / 如果上述條件為假,則轉到下一個條件。
Next ws / 檢查下一個工作表。
End Sub / 子例程結束。

步驟 3- 現在再次按照“開啟工作簿時清除篩選器”中的步驟 5 和 6 儲存檔案。關閉檔案後,篩選器將被移除,並且在您關閉檔案時將不可用。

結論
最後,可以在 VBA 編輯器中一次輸入上述 3 個程式碼中的任何一個以應用工作簿中的更改。這些是移除工作簿中各種篩選器的最有用和可靠的方法。希望這將幫助您解決問題。繼續學習,繼續探索 Excel。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP