用于从工作簿中存在的所有工作表中取消筛选数据的代码



我有一堆工作表,每个工作表中只有一个表格。我想运行一个代码来取消过滤/显示所有工作表的所有数据。到目前为止,我已经写了下面的代码,但它并没有给我想要的结果。

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

最新更新