VBA - atnaujinti suvestinę lentelę / visas suvestines lenteles

Ši pamoka parodys, kaip atnaujinti „Pivot“ lentelę arba visas „Pivot“ lenteles naudojant VBA.

„Pivot“ lentelės yra ypač galingas „Excel“ duomenų įrankis. „Pivot“ lentelės leidžia mums analizuoti ir interpretuoti didelius duomenų kiekius, grupuojant ir apibendrinant laukus ir eilutes.

Kai sukuriame „Pivot“ lentelę, duomenys saugomi vadinamojoje „Pivot“ lentelėje. Todėl duomenys saugomi kompiuterio laikinojoje atmintyje, o tai pagreitina „Pivot“ lentelę.

Jei atnaujinamas „Pivot“ lentelės duomenų šaltinis, pati „Pivot“ lentelė neatnaujinama. „Excel“ vartotojas turi spustelėti Atnaujinti viską mygtuką juostelės skirtuke Duomenys, kad atnaujintumėte „Pivot“ lentelės šaltinio duomenis.

Arba VBA galime parašyti makrokomandas, kurios mums atnaujins duomenis!

Atnaujinkite visus duomenų ryšius

Paprasčiausias būdas atnaujinti duomenis yra naudoti VBA, kad būtų imituojama tai, kas Atnaujinti viską mygtukas veikia juostelėje.

123 Sub RefreshConnections ()ActiveWorkbook.RefreshAllPabaiga Sub

Šis metodas atnaujins visus ryšius su bet kokiais aktyviais darbaknygės duomenimis. Ji taip pat ne tik atnaujins vieną „Pivot“ lentelę, bet ir atnaujins kelias „Pivot“ lenteles, jei prie skirtingų duomenų rinkinių prijungta daugiau nei viena.

Atnaujinti visas „Pivot“ lenteles

Norėdami atnaujinti tik „Pivot“ lenteles mūsų darbaknygėje, bet neįtraukti jokių kitų duomenų ryšių, galime naudoti metodą, vadinamą „RefreshTable“.

Jei mūsų darbaknygėje yra kelios „Pivot“ lentelės, turėtume peržiūrėti visas „Pivot“ lenteles, kad jas atnaujintume. Norėdami tai padaryti, pirmiausia deklaruojame „Pivot“ lentelės kintamąjį, o tada sukuriame „Kiekvienai kilpai“, kad būtų galima peržiūrėti visas „Active“ darbaknygės „Pivot“ lenteles.

123456 „Sub RefreshPivotsOnly“ ()„Dim tblPivot“ kaip „PivotTable“Už kiekvieną „tblPivot“ „ActiveWorkbook“. „PivotTable“tblPivot.RefreshTableKitas „tblPivot“Pabaiga Sub

Panašią makrokomandą galime naudoti norėdami atnaujinti „Pivot“ lenteles Aktyvus lapas o ne visa darbo knyga. Tada peržiūrėtume „Pivot“ lenteles „ActiveSheet“ o ne „ActiveWorkbook“.

123456 Sub RefreshActiveSheetPivotsOnly ()„Dim tblPivot“ kaip „PivotTable“Už kiekvieną „tblPivot“ ActiveSheet.PivotTabletblPivot.RefreshTableKitas „tblPivot“Pabaiga Sub

Ši makrokomanda būtų naudingiausia, jei turėtume lengvą prieigą prie jos „ActiveSheet“. Norėdami tai padaryti, lape galime sukurti mygtuką makrokomandai paleisti.

Atnaujinkite vieną „Pivot“ lentelę

Jei norime tik atnaujinti „Pivot“ lentelę, prie kurios dirbame, o ne visas kitas „Pivot“ lentelės darbaknygėje, turime nustatyti konkrečią „Pivot“ lentelę. Žinoma, tai yra tol, kol žinote „Pivot“ lentelės pavadinimą - šiuo atveju „PivotTable“ 1.

123 Antrasis „RefreshOneTable“ActiveSheet.PivotTables ("PivotTable1"). RefreshTablePabaiga Sub

„Pivot Table“ talpyklos atnaujinimas

Jei mūsų darbaknygėje yra kelios „Pivot“ lentelės, tačiau jos visos naudoja tuos pačius duomenis, galime atnaujinti „Pivot“ lentelės talpyklą, o ne atnaujinti tikrąją „Pivot“ lentelę. Atnaujinus talpyklą, automatiškai atnaujinamos visos „Pivot“ lentelės, kuriose naudojami talpykloje esantys duomenys.

123456 Sub RefreshCache ()Užblokuoti „chPivot“ kaip „PivotCache“Už kiekvieną „chPivot“ „ActiveWorkbook“. „PivotCaches“chPivot. AtnaujintiKitas „chPivot“Pabaiga Sub
wave wave wave wave wave