Kako automatski osvježiti zaokretne tablice pomoću VBA Excela

Sadržaj:

Anonim

Kao što svi znamo, kad god promijenimo izvorne podatke zaokretne tablice, to se ne odražava odmah u zaokretnoj tablici. Moramo osvježiti zaokretne tablice da bismo vidjeli promjene. A ako pošaljete ažuriranu datoteku bez osvježavanja zaokretnih tablica, možda ćete se osjećati neugodno.

Stoga ćemo u ovom članku naučiti kako automatski osvježiti zaokretnu tablicu koristeći VBA. Ovaj način je lakši nego što ste zamišljali.

Ovo je jednostavna sintaksa za automatsko osvježavanje zaokretnih tablica u radnoj knjizi.

'Kôd u izvornom podatkovnom listu Objekt Privatni podradni list_Deactivate () naziv lista_okretne_tabele. Zaokretne tablice ("ime_tablične_tabele"). PivotCache.Refresh End Sub 

Što su zaokretne predmemorije?

Svaka zaokretna tablica pohranjuje podatke u zaokretnu predmemoriju. Zbog toga pivot može prikazati prethodne podatke. Kad osvježimo zaokretne tablice, ažurira predmemoriju novim izvornim podacima kako bi odražavala promjene u zaokretnoj tablici.

Stoga nam samo treba makro za osvježavanje predmemorije zaokretnih tablica. To ćemo učiniti pomoću događaja radnog lista kako ne bismo morali ručno pokretati makro.

Gdje kodirati za automatsko osvježavanje zaokretnih tablica?

Ako su vaši izvorni podaci i zaokretne tablice na različitim listovima, tada bi VBA kôd trebao ući u izvornu podatkovnu tablicu.

Ovdje ćemo koristiti događaj Worksheet_SelectionChange. Tako će se kôd pokrenuti kad god pređemo s izvornog lista podataka na drugi list. Kasnije ću objasniti zašto sam koristio ovaj događaj.

Ovdje imam izvorne podatke u listu 2 i zaokretne tablice u listu 1.

Otvorite VBE pomoću tipki CTRL+F11. U istraživaču projekata možete vidjeti tri objekta, list 1, list 2 i radnu knjigu.

Budući da Sheet2 sadrži izvorne podatke, dvaput kliknite na objekt sheet2.

Sada možete vidjeti dva padajuća izbornika na vrhu područja koda. Na prvom padajućem izborniku odaberite radni list. I na drugom padajućem izborniku odaberite Deaktiviraj. Ovo će umetnuti prazan pod naziv Worksheet_Deactivate. Naš kôd bit će napisan u ovoj podnaslovu. Sve retke napisane u ovom podnaslovu izvršava se čim korisnik pređe s ovog lista na bilo koji drugi list.

Na listu 1 imam dvije zaokretne tablice. Želim osvježiti samo jednu zaokretnu tablicu. Za to moram znati naziv zaokretne tablice. Da biste znali naziv bilo koje zaokretne tablice, odaberite bilo koju ćeliju u toj zaokretnoj tablici, idite na karticu za analizu zaokretne tablice. S lijeve strane vidjet ćete naziv zaokretne tablice. Ovdje možete promijeniti i naziv zaokretne tablice.

Sada znamo naziv zaokretne tablice, možemo napisati jednostavan redak za osvježavanje zaokretne tablice.

Privatni pomoćni radni list_Deactivate () Tablica 1. Zaokretne tablice ("Zaokretna tablica1"). Zaokretna predmemorija. Osvježi Završna pomoćna pod 

I to je učinjeno.

Kad god prijeđete s izvornih podataka, ovaj vba kôd će se pokrenuti radi osvježavanja zaokretne tablice1. Kao što možete vidjeti na donjem gifu.

Kako osvježiti sve zaokretne tablice u radnoj knjizi?

U gornjem primjeru htjeli smo osvježiti samo jednu određenu zaokretnu tablicu. No, ako želite osvježiti sve zaokretne tablice u radnoj knjizi, samo trebate napraviti male promjene u kodu.

Private Sub Worksheet_Deactivate () 'Sheet1.PivotTabele ("PivotTable1"). PivotCache.Refresh Za svaki računar u ovoj radnoj knjizi.PivotCaches pc.Osvježi sljedeći pc Kraj 

U ovom kodu koristimo petlju For za petlje kroz svaku zaokretnu predmemoriju u radnoj knjizi. Objekt ThisWorkbook sadrži sve zaokretne predmemorije. Za pristup njima koristimo ThisWorkbook.PivotCaches.

Zašto koristiti događaj Worksheet_Deactivate?

Ako želite osvježiti zaokretnu tablicu čim se izvrši bilo kakva promjena u izvornim podacima, trebali biste koristiti događaj Worksheet_Change. Ali ne preporučujem. Tako će vaša radna knjiga pokrenuti kôd svaki put kada unesete bilo koju promjenu na listu. Možda ćete morati napraviti stotine promjena prije nego što želite vidjeti rezultat. Ali Excel će osvježiti zaokretnu tablicu pri svakoj promjeni. To će dovesti do gubitka vremena i resursa za obradu. Stoga, ako imate zaokretne tablice i podatke na različitim listovima, bolje je koristiti događaj za deaktiviranje radnog lista. Omogućuje vam da završite svoj posao. Kad se prebacite na listove zaokretne tablice da biste vidjeli promjene, mijenja ih se.

Ako imate zaokretne tablice i izvorne podatke na istom listu i želite da se zaokretne tablice same osvježavaju, možda ćete htjeti upotrijebiti događaj Worksheet_Change.

Privatni pod -radni list_Promijeni (ByVal cilj kao raspon) Tablica 1. Zaokretne tablice ("Zaokretna tablica1"). Zaokretna predmemorija. Osvježi Završna podmeni 

Kako osvježiti sve u radnim bilježnicama kada se izvrši promjena u izvornim podacima?

Ako želite osvježiti sve u radnoj knjizi (grafikone, zaokretne tablice, formule itd.), Možete koristiti naredbu ThisWorkbook.RefreshAll.

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

Imajte na umu da ovaj kôd ne mijenja izvor podataka. Dakle, ako dodate podatke ispod izvornih podataka, ovaj kôd neće automatski uključiti te podatke. Excel tablice možete koristiti za pohranu izvornih podataka. Ako ne želite koristiti tablice, možemo koristiti VBA i za uključivanje novih podataka. Naučit ćemo to u sljedećem vodiču.

Pa da kolega, ovako možete automatski osvježiti zaokretne tablice u Excelu. Nadam se da sam vam dovoljno objasnio i da vam je ovaj članak dobro poslužio. Ako imate bilo kakvih pitanja vezanih za ovu temu, možete me pitati u odjeljku komentara ispod.

Kako dinamički ažurirati raspon izvora podataka zaokretne tablice u Excelu: Za dinamičku promjenu raspona izvornih podataka zaokretnih tablica koristimo zaokretne predmemorije. Ovih nekoliko redaka može dinamički ažurirati bilo koju zaokretnu tablicu promjenom raspona izvornih podataka. U VBA koristite objekte zaokretnih tablica kako je prikazano u nastavku …

Pokrenite makronaredbu ako dođe do promjene na listu u navedenom rasponu: U vašim VBA postupcima dobit ćete potrebu za pokretanjem makronaredbi kad se promijeni određeni raspon ili ćelija. U tom slučaju, za pokretanje makronaredbi kada se izvrši promjena u ciljnom rasponu, koristimo događaj change.

Pokreni makronaredbu kad se na listu unese bilo kakva promjena | Dakle, za pokretanje vašeg makronaredbe kad god se list ažurira, koristimo VBA događaje na radnom listu.

Najjednostavniji VBA kôd za označavanje trenutnog retka i stupca pomoću | Pomoću ovog malog isječka VBA označite trenutačni redak i stupac lista.

Događaji na radnom listu u Excelu VBA | Događaj na radnom listu zaista je koristan kada želite da se vaše makronaredbe izvode kada se na listu pojavi određeni događaj.

Popularni članci:

50 Excel prečaca za povećanje vaše produktivnosti | Budite brži u izvršavanju svojih zadataka. Ovih 50 prečaca učinit će da radite još brže na Excelu.

Funkcija VLOOKUP u Excelu | Ovo je jedna od najčešće korištenih i popularnih funkcija programa Excel koja se koristi za traženje vrijednosti iz različitih raspona i listova.

COUNTIF u Excelu 2016 | Brojte vrijednosti s uvjetima pomoću ove nevjerojatne funkcije. Ne morate filtrirati svoje podatke da biste računali određenu vrijednost. Funkcija Countif bitna je za pripremu vaše nadzorne ploče.

Kako koristiti funkciju SUMIF u Excelu | Ovo je još jedna bitna funkcija nadzorne ploče. To vam pomaže pri zbrajanju vrijednosti u posebnim uvjetima.