Excel 如何在打开文件时自动删除应用的筛选器而不删除筛选器功能

Excel 如何在打开文件时自动删除应用的筛选器而不删除筛选器功能,excel,vba,Excel,Vba,我有一个团队在共享电子表格上远程工作。他们可以应用过滤器进行搜索。我希望电子表格能够在关闭或打开电子表格时自动清除以前应用的过滤器,而不删除设置未来过滤器的功能。我想不出代码来实现这一点 我搜索了这些线程并尝试了许多代码。有些人已经接近并在打开电子表格时删除了过滤器,但它也删除了过滤功能。这意味着每次我重新打开电子表格时都必须打开过滤,这并不理想。使用的代码是: Private Sub Workbook_Open() Dim ws As Worksheet For Eac

我有一个团队在共享电子表格上远程工作。他们可以应用过滤器进行搜索。我希望电子表格能够在关闭或打开电子表格时自动清除以前应用的过滤器,而不删除设置未来过滤器的功能。我想不出代码来实现这一点

我搜索了这些线程并尝试了许多代码。有些人已经接近并在打开电子表格时删除了过滤器,但它也删除了过滤功能。这意味着每次我重新打开电子表格时都必须打开过滤,这并不理想。使用的代码是:

Private Sub Workbook_Open()
    Dim ws As Worksheet
        For Each ws In Worksheets
            If ws.AutoFilterMode Then
                ws.AutoFilterMode = False
            End If
        Next ws
End Sub

这将清除,但保留过滤器:

Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.AutoFilterMode Then 
            ws.AutoFilter.ShowAllData
        End If 
    Next ws 
End Sub

另一种方法可以是:

Sub clearFilter()
Dim sht As Worksheet 'Declare a worksheet variable
Dim rng As Range 'Declare a Range variable
Dim j As Long
Set sht = ThisWorkbook.Worksheets("Name of your Worksheet") 'The worksheet where the data is
Set rng = sht.Range("A:E") 'The range that is being filtered. In this case columns A,B,C,D,E are being filtered.

For j = 1 To rng.Columns.Count Step 1 'loop through all the columns that are being filtered...
    rng.AutoFilter Field:=j '...and clear the filter while maintaining the filtering capabilities
Next j

End Sub