Vrtilna tabela za osvežitev VBA - Samodejno osveži vse vrtilne tabele z uporabo VBA

Vrtilna tabela Excel VBA Refresh

Ko v list vstavimo vrtilno tabelo , potem ko se podatki spremenijo, se podatki vrtilne tabele ne spremenijo sami, to moramo storiti ročno, vendar je v VBA izjava za osvežitev vrtilne tabele, ki je izraz.refreshtable , s pomočjo katere lahko osvežimo vrtilna tabela s sklicevanjem na delovni list, ki ga sestavlja, ali pa se lahko sklicujemo na celotne vrtilne tabele na delovnih listih in jih osvežimo naenkrat.

Vrtilna tabela je ključnega pomena pri analizi ogromne količine podatkov. Pomaga že pri analizi, povzetku in uporabni interpretaciji podatkov. Vendar pa je ena od težav s to vrtilno tabelo ta, da se samodejno ne osveži, če pride do sprememb v izvornih podatkih. Uporabnik mora osvežiti vrtilno tabelo tako, da vsakič, ko pride do spremembe, odpre določeno vrtilno tabelo. A poslovite se od ročnega postopka, ker imamo tukaj način za osvežitev vrtilne tabele, takoj ko spremenite vrtilno tabelo.

Kako samodejno osvežiti kodo VBA podatkov vrtilne tabele?

Vrtilno tabelo je treba posodobiti le, kadar koli pride do sprememb v izvornih podatkih vrtilne tabele, na katero se sklicujemo.

Na primer, poglejte spodnje podatke in vrtilno tabelo.

Zdaj bom spremenil številke v izvornih podatkih, tj. Iz A1 v B17.

V celici B9 moram spremeniti vrednost s 499 na 1499, tj. Na 1000 povečanje podatkov, vendar če pogledamo vrtilno točko, rezultat še vedno prikazuje 4295 namesto 5295. Moram ročno osvežiti svojo vrtilno tabelo, da posodobim vrteča miza.

Da bi odpravili to težavo, moramo napisati preprosto kodo makra excel za osvežitev vrtilne tabele, kadar koli pride do sprememb v izvornih podatkih.

# 1 - preprost makro za osvežitev celotne tabele

1. korak: Spremenite dogodek podatkovnega lista

Sprožiti moramo spremembo podatkovnega lista. V urejevalniku Visual Basic dvokliknite podatkovni list.

Ko dvokliknete list, izberite »Delovni list« in dogodek izberite kot »Spremeni«.

Videli boste samodejni postopek poddelav, odprt kot Worksheet_Change (ByVal Target As Range)

2. korak: uporabite objekt delovnega lista

Glejte podatkovni list z uporabo predmeta Worksheets.

3. korak: Oglejte si vrtilno tabelo po imenu

Poiščite ime vrtilne tabele z imenom vrtilne tabele.

4. korak: Uporabite metodo osveževanja tabele

Izberite način kot »Osveži tabelo«.

Zdaj bo ta koda osvežila vrtilno tabelo »Vrtilna tabela1« vsakič, ko pride do sprememb v izvornem podatkovnem listu. Uporabite lahko spodnjo kodo. Samo spremeniti morate ime vrtilne tabele.

Koda:

Private Sub Worksheet_Change (ByVal Target As Range) Worksheet ("Data Sheet"). Vrtilne tabele ("PivotTable1"). RefreshTable End Sub

# 2 - Osvežite vse vrtilne tabele istega delovnega lista

Če imate na istem delovnem listu veliko vrtilnih tabel, lahko osrednje vse vrtilne tabele z enim samim klikom. S spodnjo kodo osvežite vse vrtilne tabele na listu.

Koda:

Sub Refresh_Pivot_Tables_Example1 () Delovni listi ("Podatkovni list"). Izberite z ActiveSheet .PivotTables ("Tabela1"). RefreshTable .PivotTables ("Table2"). RefreshTable .PivotTables ("Table3"). RefreshTable .Pivot4 " RefreshTable .PivotTables ("Tabela5"). RefreshTable End with End Sub

Spremeniti morate imena imen delovnega lista in vrtilne tabele v skladu s podrobnostmi delovnega lista.

# 3 - Osvežite vse tabele v delovnem zvezku

Zelo malo verjetno je, da imamo vse vrtilne tabele na istem delovnem listu. Običajno za vsako poročilo poskušamo dodati ločene vrtilne tabele v ločene liste. V teh primerih ne moremo še naprej pisati kode za vsako vrtilno tabelo, ki jo je treba osvežiti.

Torej, kar lahko naredimo, je z eno samo kodo z uporabo zank, lahko preletimo skozi vse vrtilne tabele v delovnem zvezku in jih z enim klikom gumba osvežimo.

Spodnja koda bo zavila skozi vsako vrtilno tabelo in jih osvežila.

Koda 1:

Sub Refresh_Pivot_Tables_Example2 () Dim PT kot vrtilna tabela za vsak PT v ActiveWorkbook.PivotTables PT.RefreshTable Next PT End Sub

Koda 2:

Sub Refresh_Pivot_Tables_Example3 () Dim PC kot PivotCache za vsak PC v ActiveWorkbook.PivotCaches PC.Refresh Next PT End Sub

Obe kodi bosta osvežili vrtilne tabele.

Če želite, da se vrtilna tabela osveži takoj, ko pride do kakršnih koli sprememb v obrazcu obračalnega lista, morate zgornje kode kopirati in prilepiti v dogodek Sprememba delovnega lista v tem delovnem zvezku.

# 4 - Izogibajte se nalaganju časa z uporabo dogodka za deaktiviranje delovnega lista

Ko uporabimo dogodek »Sprememba delovnega lista«, se osveži, tudi če se vir podatkov ne spremeni, če pa se na delovnem listu zgodi kakšna sprememba.

Tudi če v delovni list vnesete eno samo piko, poskuša osvežiti vrtilno tabelo. Da bi se temu izognili, lahko namesto metode »Sprememba delovnega lista« uporabimo metodo »Deaktiviraj delovni list«.

Med premikanjem z enega lista na drugega deaktivirajte posodobitve dogodkov na vrtilni tabeli.

Zanimive Članki...