我想在保存工作簿時重置所有過濾器。目前我有:獲取宏保存時運行
Sub ResetFilters()
On Error Resume Next
ActiveSheet.ShowAllData
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Call ResetFilters
Next
Cancel = False
End Sub
這個想法是,當我保存時,我刪除所有的過濾器。它不工作的原因 - 有沒有人有任何想法爲什麼?
編輯:更多的google搜索找到了答案:Excel VBA - Run macro before save
鉈;博士:在它的關鍵字總是計算器谷歌 - 它極大地幫助
首先,不要使用On Error Resume接下來,這行基本上會繞過可能導致麻煩的錯誤。另外,我會使用'Cncl'而不是'Cancel'作爲變量來避免意外使用關鍵字。改變這兩個,看看程序告訴你什麼。 – Alex
我明白了 - 這是我保存模塊的位置。如果你可以找到一個更好的方法來刪除過濾器,我很樂意聽到它 - 我還沒有找到一個更好的方法 – Selkie
我想你會遇到與使用ActiveSheet有關的問題。您應該將ws傳遞給ResetFilters,並使用ws而不是ActiveSheet。 –