有没有办法检查工作表是否有任何过滤数据(如果有过滤数据,则清除过滤器,否则什么都不做)?我这里有这个代码,但我不知道如何编写第二部分:
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
答案 0 :(得分:1)
此代码从ActiveSheet中删除所有自动过滤器
ActiveSheet.Autofilter.Range.Autofilter
之后,您可以通过定义适当的范围重置过滤器(未选择任何条件)
ActiveSheet.Range("A1:B1").Autofilter
答案 1 :(得分:0)
我认为最好的方法是使用.FilterMode
If Sheets("NameSheet").FilterMode Then Sheets("NameSheet").ShowAllData
此代码删除工作表中已过滤的数据,并显示所有保留自动过滤器的数据。