Как автоматически удалить примененные фильтры при открытии файла БЕЗ удаления возможностей фильтра - PullRequest
0 голосов
/ 23 мая 2019

У меня есть команда, которая работает удаленно над общей таблицей. Они могут применять фильтры для поисковых целей. Мне бы хотелось, чтобы в электронной таблице ранее примененные фильтры очищались автоматически при закрытии ИЛИ при открытии электронной таблицы, не удаляя возможность устанавливать будущие фильтры. Я не могу понять код, чтобы сделать эту работу.

Я искал эти темы и перепробовал много кодов. Некоторые подошли ближе и удалили фильтры при открытии электронной таблицы, но это также удаляет СПОСОБНОСТЬ фильтровать. Это означает, что мне нужно включать фильтрацию каждый раз, когда я заново открываю электронную таблицу, и это не идеально. Используемый код:

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

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Это очистит, но сохранит фильтр:

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
0 голосов
/ 23 мая 2019

Другой подход может быть следующим:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...