Odświeżanie zewnętrznych tabel danych

W przypadku, gdy naszym zadaniem jest odświeżenie wszystkich zewnętrznych źródeł danych korzystających z tzw. QueryTables, możemy skorzystać z makra używanego m. in. do odświeżania tabel przestawnych w naszym skoroszycie. Uruchomienie poniższego kodu spowoduje odświeżenie wszystkich tabel przestawnych oraz źródeł danych. Działa analogicznie jak kliknięcie przycisku „Odśwież” w zakładce „Dane”.

Sub RefreshAll()
ActiveWorkbook.RefreshAll
End Sub

Jeśli chcemy, by z całości naszego raportu odświeżone zostały jedynie źródła danych, powinniśmy zastosować w tym celu kod odwołujący się jedynie do konkretnej tabeli, którą chcemy odświeżyć. Przykład poniżej:

 Sub RefreshTable()
Range("Nazwa_tabeli").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub

W przypadku, gdy nasz skoroszyt zawiera dużą liczbę zewnętrznych źródeł danych, bądź też istnieje możliwość, że  przyszłości źródeł danych będzie więcej, najlepszym sposobem jest wykorzystanie pętli wyszukującej i odświeżającej po kolej tabele danych. Poniższy przykład wyszukuje:

Sub RefreshAllExtDataTables()
Dim CustWks As Worksheet
Dim CustQt As QueryTable
Dim CustLo As ListObject
For Each CustWks In Worksheets
For Each CustQt In CustWks.QueryTables
CustQt.Refresh BackgroundQuery:=False
Next CustQt
For Each CustLo In CustWks.ListObjects
CustLo.QueryTable.Refresh BackgroundQuery:=False
Next CustLo
Next CustWks
End Sub

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentarz do “Odświeżanie zewnętrznych tabel danych”