如何在 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。

更新於:2022年10月10日

2K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.