Я совершенно новичок в 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?
Большое спасибо!