跳到主要內容

在Excel中打開,保存或關閉工作簿時如何清除篩選器?

假設您的工作簿中有多個包含過濾數據的工作表。 要清除所有過濾器,您需要檢查不同工作表中的過濾列表,然後手動將它們一一清除。 這很煩人! 在本文中,我們將向您展示在 Excel 中打開、保存或關閉工作簿時清除過濾器的幾種方法。

在Excel中打開工作簿時清除過濾器
在Excel中保存工作簿時清除過濾器
在Excel中關閉/退出工作簿時清除篩選器


在Excel中打開工作簿時清除過濾器

本節討論打開工作簿時清除所有工作表中的篩選器。 請執行以下操作。

1.在工作簿中,您需要在打開時自動清除所有過濾器,請按 其他 + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口,請雙擊 的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 for Applications 窗口。

4。 點擊 文件 > 另存為。 在彈出 另存為 對話框中,指定一個文件夾來保存此工作簿,然後根據需要在其中命名 文件名 框,然後選擇 Excel啟用宏的工作簿 選項從 保存類型 下拉列表,最後單擊 節省 按鈕。

從現在開始,當打開這個啟用宏的工作簿時,這個工作簿中的所有過濾器都會被自動清除。


在Excel中保存工作簿時清除過濾器

您可以在每次保存時清除當前工作簿中的所有過濾器。

1.在工作簿中,您需要自動清除所有過濾器,請按 其他 + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口,請雙擊 的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 for Applications 窗口。

從現在開始,保存工作簿時,將自動清除所有過濾器。


在Excel中關閉/退出工作簿時清除篩選器

最後一部分,我們將向您展示在關閉或退出工作簿時如何清除工作表中的所有過濾器。

1.打開您需要自動清除所有過濾器的工作簿,然後按 其他 + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口,請雙擊 的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 for Applications 窗口。

從現在開始,單擊工作簿中的“關閉”按鈕後,將自動清除所有篩選器。


相關文章:

最佳辦公生產力工具

熱門特色: 尋找、突出顯示或識別重複項   |  刪除空白行   |  合併列或儲存格而不遺失數據   |   沒有公式的回合 ...
超級查詢: 多條件VLookup    多值VLookup  |   跨多個工作表的 VLookup   |   模糊查詢 ....
高級下拉列表: 快速建立下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
欄目經理: 新增特定數量的列  |  移動列  |  切換隱藏列的可見性狀態  |  比較範圍和列 ...
特色功能: 網格焦點   |  設計圖   |   大方程式酒吧    工作簿和工作表管理器   |  資源庫 (自動文字)   |  日期選擇器   |  合併工作表   |  加密/解密單元格    按清單發送電子郵件   |  超級濾鏡   |   特殊過濾器 (過濾粗體/斜體/刪除線...)...
前 15 個工具集12 文本 工具 (添加文本, 刪除字符,...)   |   50+ 圖表 類型 (甘特圖,...)   |   40+ 實用 公式 (根據生日計算年齡,...)   |   19 插入 工具 (插入二維碼, 從路徑插入圖片,...)   |   12 轉化 工具 (數字到單詞, 貨幣兌換,...)   |   7 合併與拆分 工具 (高級合併行, 分裂細胞,...)   |   ... 和更多

使用 Kutools for Excel 增強您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種進階功能來提高生產力並節省時間。  點擊此處獲取您最需要的功能...

kte選項卡201905


Office選項卡為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