我有一堆工作表,每个工作表中只有一个表格。我想运行一个代码来取消过滤/显示所有工作表的所有数据。到目前为止,我已经写了下面的代码,但它并没有给我想要的结果。
dim ws1 as worksheet
On Error Resume Next
For Each ws1 In Worksheets
If ws1.FilterMode = True Then ws1.ShowAllData
Next ws1
On Error GoTo 0
请查看上面的代码并修改。
谢谢萨勒曼
您可能需要从 Range.Hidden Property 以及 Worksheet.ShowAllData 方法的角度解决这个问题。 方面。数据可能已通过 Range.AutoFilter 方法以外的其他方式隐藏。
Dim w As Long
For w = 1 To Worksheets.Count
With Worksheets(w)
.UsedRange.Cells.EntireRow.Hidden = False
If .AutoFilterMode Then .ShowAllData
End With
Next w
使用AutoFilterMode
属性。
Dim ws1 As Worksheet
On Error Resume Next
For Each ws1 In Worksheets
If ws1.AutoFilterMode = True Then ws1.AutoFilterMode = False
Next ws1
On Error GoTo 0
根据您的要求尝试此代码。
Sub test1()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
For Each ws In wb.Worksheets
If Not ws.AutoFilterMode = False Then
ws.AutoFilterMode = False
End If
Next
End Sub