运行macros之前,从所有表中删除过滤
我想在每一个macros中都放一个小代码,从我的工作簿中删除任何filter。
我所做的是以下,但似乎没有正常工作。 当我点击button,它不会删除filter,但如果我一行一行地运行它。
我不明白。
WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop to disable all filters For i = 1 To WS_Count If (ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode) Or ActiveSheet.FilterMode Then ActiveSheet.ShowAllData End If Next i
你for loop
没有被使用,因为你没有引用i
。 另外, If
语句的第二个标准基本上使第一个标准无关紧要,试试这个:
WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop to disable all filters For i = 1 To WS_Count If Thisworkbook.Sheets(i).FilterMode Then Thisworkbook.Sheets(i).ShowAllData End If Next i
要删除filter的例子会
Option Explicit Public Sub Example() Dim Sht As Worksheet For Each Sht In Worksheets If Sht.AutoFilterMode = True Then Debug.Print Sht.Name Sht.AutoFilterMode = False End If Next End Sub
Worksheet.AutoFilterMode属性(Excel)