有什么方法可以检查工作表中是否有已过滤的数据(如果有已过滤的数据,请清除过滤器,否则什么也不做)?我在这里有这段代码,但是我不知道如何写第二部分:

Sub ProtectAll()

Dim wSheet          As Worksheet

For Each wSheet In Worksheets

With wSheet
If .AutoFilterMode Then
            .ShowAllData
            .Cells.Locked = True
            .Cells.FormulaHidden = False
           '.Range(wSheet.Cells(12, 1), wSheet.Cells(12, 18)).AutoFilter
           '.Protect Password:=Pwd, AllowFiltering:=True

ElseIf ??? Then
End If
End With

Next wSheet
End Sub

最佳答案

此代码从ActiveSheet中删除所有自动过滤器

ActiveSheet.Autofilter.Range.Autofilter


之后,您可以通过定义适当的范围来重置过滤器(未选择标准)

ActiveSheet.Range("A1:B1").Autofilter

10-06 16:07