Очистить фильтры / показать все данные для всех рабочих листов и внешних таблиц SQL в рабочей книге с VBA в Excel - PullRequest
0 голосов
/ 06 апреля 2020

Я совершенно новичок в VBA, так что извините за мою наивность! Я пытаюсь создать макрос, который очищает фильтр (оставляя стрелки раскрывающегося списка) от всех таблиц И (внешних SQL) в таблицах. После рассмотрения подобных проблем у меня есть следующий код:

Sub removeFilters()

Dim i As Long
Dim ws As Worksheet
Dim oList As ListObject
On Error Resume Next
Application.ScreenUpdating = False

For Each ws In Worksheets
    With ws
        If .FilterMode Then
            .ShowAllData
        End If

    End With
Next ws

Application.ScreenUpdating = True
    For Each ws In ActiveWorkbook.Worksheets
        For Each oList In ws.ListObjects
            oList.AutoFilter.ShowAllData
        Next oList
    Next ws
Application.ScreenUpdating = True
End Sub

Это работает для рабочих листов без внешних SQL таблиц в (только таблицы Excel) и рабочих листов, которые просто состоят из одной внешней SQL таблицы , но у меня есть две таблицы, в которых есть внешняя таблица (извлеченная из SQL) рядом с автономным столбцом (столбец A), который имеет свой собственный макрос (не записанный мной) для заполнения на основе значений в таблице эти последние две таблицы, кажется, не работают, и прежде чем я добавлю в «При возобновлении ошибки далее», я получил бы следующее сообщение об ошибке:

Ошибка времени выполнения «1004»:

Метод 'ShowAllData 'объекта' _Worksheet 'не удалось

Кто-нибудь знает, как решить эту проблему? Полагаю, ему не нравится тот факт, что в одной таблице есть таблица Excel и внешняя таблица SQL?

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...