Vba 在运行宏之前从所有工作表中删除筛选
我想在我拥有的每个宏之前放一个小代码,从工作簿的所有工作表中删除任何过滤器 我所做的如下,但它似乎没有正常工作。当我点击按钮时,它不会移除过滤器,但如果我逐行运行它,它会移除过滤器 我不明白Vba 在运行宏之前从所有工作表中删除筛选,vba,excel,Vba,Excel,我想在我拥有的每个宏之前放一个小代码,从工作簿的所有工作表中删除任何过滤器 我所做的如下,但它似乎没有正常工作。当我点击按钮时,它不会移除过滤器,但如果我逐行运行它,它会移除过滤器 我不明白 WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop to disable all filters For i = 1 To WS_Count If (ActiveSheet.AutoFilterMode And ActiveShe
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循环
没有被使用,因为您没有引用i
。此外,如果语句的第二个条件基本上使第一个条件不相关,请尝试以下操作:
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
删除过滤器的示例如下:
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