VBA tablica za osvježavanje - Automatski osvježi sve zaokretne tablice pomoću VBA

Excel VBA osvježavajuća zaokretna tablica

Kada umetnemo pivot tablicu u list, nakon što se podaci promijene podaci pivot tablice se ne mijenjaju sami, to moramo učiniti ručno, ali u VBA postoji izjava za osvježavanje pivot tablice koja je expression.refreshtable , pomoću nje možemo osvježiti zaokretna tablica pozivanjem na radni list koji ga čini ili se možemo osvrnuti na cijele zaokretne tablice na radnim listovima i osvježiti ih sve odjednom.

Zaokretna tablica vitalna je za analizu ogromne količine podataka. Pomaže već od analize, sažimanja, kao i korisnog tumačenja podataka. Međutim, jedan od problema s ovom zaokretnom tablicom je što se neće automatski osvježiti ako dođe do promjene u izvornim podacima. Korisnik mora osvježiti zaokretnu tablicu odlaskom do određene zaokretne tablice svaki put kada dođe do promjene. Ali oprostite se od ručnog postupka, jer ovdje imamo metodu za osvježavanje pivot tablice čim napravite bilo kakvu promjenu u pivot tablici.

Kako automatski osvježiti VBA kod podataka pivot tablice?

Pivot tablicu treba ažurirati jedino kad dođe do bilo kakve promjene u izvornim podacima pivot tablice na koju se pozivamo.

Na primjer, pogledajte dolje podatke i zaokretnu tablicu.

Sada ću promijeniti brojeve u izvornim podacima, tj. Od A1 do B17.

U ćeliji B9 moram promijeniti vrijednost s 499 na 1499, tj. Povećanje podataka za 1000, ali ako pogledate zaokret i dalje prikazuje rezultat kao 4295 umjesto kao 5295. Moram ručno osvježiti svoju zaokretnu tablicu kako bih ažurirao stožerna tablica.

Da bismo prevladali ovaj problem, moramo napisati jednostavan excel makro kod za osvježavanje zaokretne tablice kad god dođe do bilo kakve promjene u izvornim podacima.

# 1 - Jednostavna makronaredba za osvježavanje svih tablica

Korak 1: Promjena događaja u tablici podataka

Moramo pokrenuti događaj promjene tablice podataka. U uređivaču visual basic dvaput kliknite na podatkovnu tablicu.

Nakon što dvaput kliknete na list, odaberite "Worksheet" i odaberite događaj kao "Change".

Vidjet ćete da se automatski podproces otvorio kao Worksheet_Change (ByVal Target As Range)

Korak 2: Upotrijebite objekt radnog lista

Pogledajte tablicu podataka pomoću objekta Worksheets.

Korak 3: Pogledajte zaokretnu tablicu prema nazivu

Nazovite naziv pivot tablice prema nazivu pivot tablice.

Korak 4: Upotrijebite metodu osvježavanja tablice

Odaberite metodu kao "Osvježi tablicu".

Sada će ovaj kôd osvježiti zaokretnu tablicu "Zaokretna tablica1" kad god dođe do bilo kakve promjene u izvornom podatkovnom listu. Možete koristiti donji kod. Jednostavno morate promijeniti naziv zaokretne tablice.

Kodirati:

Privatni radni list_Promjena (radni list ciljanja prema rasponu) ("podatkovni list"). Zaokretne tablice ("zaokretna tablica1"). Završetak pododržane tablice

# 2 - Osvježite sve stožerne tablice istog radnog lista

Ako imate više zaokretnih tablica na istom radnom listu, sve osovinske tablice možete osvježiti jednim klikom. Koristite donji kod za osvježavanje svih zaokretnih tablica na listu.

Kodirati:

Sub Refresh_Pivot_Tables_Example1() Worksheets("Data Sheet").Select With ActiveSheet .PivotTables("Table1").RefreshTable .PivotTables("Table2").RefreshTable .PivotTables("Table3").RefreshTable .PivotTables("Table4").RefreshTable .PivotTables("Table5").RefreshTable End With End Sub

You need to change the name of the worksheet and pivot table names as per your worksheet details.

#3 - Refresh All Tables in the Workbook

It is highly unlikely we have all the pivot tables on the same worksheet. Usually, for each report, we try to add separate pivot tables in separate sheets. In these cases, we cannot keep writing the code for each pivot table to be refreshed.

So, what we can do is with a single code using loops, we can loop through all the pivot tables on the workbook and refresh them with a single click of the button.

The below code will loop through each pivot table and refresh them.

Code 1:

Sub Refresh_Pivot_Tables_Example2() Dim PT As PivotTable For Each PT In ActiveWorkbook.PivotTables PT.RefreshTable Next PT End Sub

Code 2:

Sub Refresh_Pivot_Tables_Example3() Dim PC As PivotCache For Each PC In ActiveWorkbook.PivotCaches PC.Refresh Next PT End Sub

Both the codes will do the refreshing of pivot tables.

If you want the pivot table to be refreshed as soon as there is any change in the datasheet of the pivoting sheet, you need to copy and paste the above codes to the Worksheet Change event in that workbook.

#4 - Avoid Loading Time by using Worksheet Deactivate Event

Kada koristimo događaj "Promjena radnog lista", on se osvježava čak i kada nema promjena u izvoru podataka, ali ako se na radnom listu dogodi bilo kakva promjena.

Čak i ako na radni list unesete jednu točku, ona pokušava osvježiti zaokretnu tablicu. Da bismo to izbjegli, možemo koristiti metodu "Deaktiviraj radni list" umjesto metode "Promjena radnog lista".

Deaktivirajte ažuriranja događaja na zaokretnoj tablici prilikom prelaska s jednog lista na drugi.

Zanimljivi članci...