Kako samodejno osvežiti vrtilne tabele z uporabo VBA Excel

Kot vsi vemo, kadar koli spremenimo izvorne podatke vrtilne tabele, se to ne odrazi takoj v vrtilni tabeli. Za prikaz sprememb moramo osvežiti vrtilne tabele. Če pošljete posodobljeno datoteko, ne da bi osvežili vrtilne tabele, se boste morda počutili nerodno.

Tako se bomo v tem članku naučili, kako samodejno osvežiti vrtilno tabelo z uporabo VBA. Ta način je lažji, kot ste si predstavljali.

To je preprosta skladnja za samodejno osveževanje vrtilnih tabel v delovnem zvezku.

"Koda v izvornem podatkovnem listu Objekt Zasebni pod -delovni list_Deactivate () ime lista_pivotne_tabele. Vrtilne tabele (" ime_tablične_tabele "). PivotCache.Refresh End Sub 

Kaj so vrtilni predpomnilniki?

Vsaka vrtilna tabela shranjuje podatke v vrtilnem predpomnilniku. Zato pivot lahko prikaže prejšnje podatke. Ko osvežimo vrtilne tabele, posodobi predpomnilnik z novimi izvornimi podatki, da odraža spremembe v vrtilni tabeli.

Zato potrebujemo samo makro za osvežitev predpomnilnika vrtilnih tabel. To bomo storili z dogodkom na delovnem listu, da nam ne bo treba ročno izvajati makra.

Kje kodirati za samodejno osveževanje vrtilnih tabel?

Če so vaši izvorni podatki in vrtilne tabele na različnih listih, mora biti koda VBA v izvornem podatkovnem listu.

Tukaj bomo uporabili dogodek Worksheet_SelectionChange. Tako se bo koda zagnala, kadar koli preidemo z izvornega lista na drug list. Kasneje bom razložil, zakaj sem uporabil ta dogodek.

Tukaj imam izvorne podatke v listu 2 in vrtilne tabele v listu 1.

Odprite VBE s tipko CTRL+F11. V raziskovalcu projektov lahko vidite tri predmete, list 1, list 2 in delovni zvezek.

Ker Sheet2 vsebuje izvorne podatke, dvokliknite objekt sheet2.

Zdaj lahko vidite dva spustna menija na vrhu področja kode. V prvem spustnem meniju izberite delovni list. V drugem spustnem meniju izberite Deaktiviraj. To bo vstavilo prazen podimenik Worksheet_Deactivate. Naša koda bo zapisana v tem podpodročju. Vse vrstice, napisane v tem podnaslovu, se izvedejo takoj, ko uporabnik preklopi s tega lista na kateri koli drug list.

Na listu 1 imam dve vrtilni tabeli. Osvežiti želim samo eno vrtilno tabelo. Za to moram vedeti ime vrtilne tabele. Če želite vedeti ime katere koli vrtilne tabele, izberite katero koli celico v tej vrtilni tabeli, pojdite na zavihek za analizo vrtilne tabele. Na levi strani boste videli ime vrtilne tabele. Tu lahko spremenite tudi ime vrtilne tabele.

Zdaj vemo ime vrtilne tabele, lahko napišemo preprosto vrstico za osvežitev vrtilne tabele.

Zasebni pod -delovni list_Deactivate () List 1. PivotTabele ("PivotTable1"). PivotCache.Refresh End Sub 

In to je storjeno.

Zdaj, ko preklopite iz izvornih podatkov, se bo ta koda vba zagnala za osvežitev vrtilne tabele1. Kot lahko vidite na spodnjem gifu.

Kako osvežiti vse vrtilne tabele v delovnem zvezku?

V zgornjem primeru smo želeli osvežiti samo eno posebno vrtilno tabelo. Če pa želite osvežiti vse vrtilne tabele v delovnem zvezku, morate samo nekoliko spremeniti kodo.

Zasebni pod -delovni list_Deactivate () 'List 1. Vrtilne tabele ("vrtilna tabela1"). Vrtilni predpomnilnik. Osveži za vsak računalnik v tej delovni knjigi. 

V tej kodi uporabljamo zanko For za prehod skozi vse vrtilne predpomnilnike v delovnem zvezku. Objekt ThisWorkbook vsebuje vse vrtilne predpomnilnike. Za dostop do njih uporabljamo ThisWorkbook.PivotCaches.

Zakaj uporabljati dogodek Worksheet_Deactivate?

Če želite osvežiti vrtilno tabelo, takoj ko pride do kakršne koli spremembe v izvornih podatkih, uporabite dogodek Worksheet_Change. Ampak tega ne priporočam. Tako bo vaš delovni zvezek zagnal kodo vsakič, ko na listu naredite kakršno koli spremembo. Morda boste morali narediti stotine sprememb, da boste videli rezultat. Toda Excel bo osvežil vrtilno tabelo pri vsaki spremembi. To bo povzročilo izgubo časa in sredstev za obdelavo. Torej, če imate vrtilne tabele in podatke na različnih listih, je bolje uporabiti dogodek za deaktiviranje delovnega lista. Omogoča vam, da dokončate svoje delo. Ko preklopite na liste vrtilne tabele in si ogledate spremembe, jih spremeni.

Če imate na istem listu vrtilne tabele in izvorne podatke in želite, da se vrtilne tabele samodejno osvežijo, boste morda želeli uporabiti dogodek Worksheet_Change.

Zasebni pod -delovni list_Sprememba (cilj ByVal kot obseg) List 1. PivotTabele ("PivotTable1"). PivotCache.Refresh End Sub 

Kako osvežiti vse v delovnih zvezkih, ko se spremenijo izvorni podatki?

Če želite osvežiti vse v delovnem zvezku (grafikone, vrtilne tabele, formule itd.), Lahko uporabite ukaz ThisWorkbook.RefreshAll.

Private Sub Worksheet_Change (ByVal Target As Range) ThisWorkbook.RefreshAll End Sub 

Upoštevajte, da ta koda ne spremeni vira podatkov. Če torej pod izvorne podatke dodate podatke, ta koda teh podatkov ne bo vključila samodejno. Za shranjevanje izvornih podatkov lahko uporabite Excelove tabele. Če ne želite uporabljati tabel, lahko uporabimo VBA tudi za vključitev novih podatkov. Tega se bomo naučili v naslednji vadnici.

Ja, kolega, tako lahko samodejno osvežite vrtilne tabele v Excelu. Upam, da sem bil dovolj razložljiv in da vam je ta članek dobro služil. Če imate kakršna koli vprašanja v zvezi s to temo, me lahko vprašate v spodnjem razdelku za komentarje.

Kako dinamično posodobiti obseg vira podatkov vrtilne tabele v Excelu: Za dinamično spreminjanje obsega izvornih podatkov vrtilnih tabel uporabljamo vrtilne predpomnilnike. Teh nekaj vrstic lahko dinamično posodobi katero koli vrtilno tabelo s spreminjanjem območja izvornih podatkov. V VBA uporabite predmete vrtilnih tabel, kot je prikazano spodaj …

Zaženite makro, če je na listu v določenem obsegu prišlo do kakršne koli spremembe: V praksah VBA boste morali zagnati makre, ko se določeno območje ali celica spremeni. V tem primeru za izvajanje makrov pri spremembi ciljnega območja uporabimo dogodek spremembe.

Zaženi makro, če na listu pride do kakršne koli spremembe | Zato za zagon makra vsakič, ko se list posodobi, uporabljamo dogodke delovnega lista VBA.

Najpreprostejša koda VBA za označevanje trenutne vrstice in stolpca | S tem majhnim delčkom VBA označite trenutno vrstico in stolpec lista.

Dogodki na delovnem listu v Excelu VBA | Dogodek delovnega lista je resnično uporaben, če želite, da se makri zaženejo, ko se na listu pojavi določen dogodek.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. S temi 50 bližnjicami boste še hitreje delali v Excelu.

Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.

COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določene vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.

Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave