VBA - Obnoviť kontingenčnú tabuľku / všetky kontingenčné tabuľky

Tento tutoriál ukáže, ako obnoviť kontingenčnú tabuľku alebo všetky kontingenčné tabuľky pomocou jazyka VBA.

Kontingenčné tabuľky sú mimoriadne výkonným dátovým nástrojom Excelu. Kontingenčné tabuľky nám umožňujú analyzovať a interpretovať veľké množstvo údajov zoskupovaním a sumarizáciou polí a riadkov.

Keď vytvoríme kontingenčnú tabuľku, údaje sa uložia do pamäte cache známej ako kontingenčná tabuľka. Údaje sú preto uložené vo vyrovnávacej pamäti počítača, čo urýchľuje kontingenčnú tabuľku.

Ak je zdroj údajov kontingenčnej tabuľky aktualizovaný, samotná kontingenčná tabuľka sa neaktualizuje. Užívateľ v Exceli musí kliknúť na Obnoviť všetky na karte Údaje na páse s nástrojmi obnovíte zdrojové údaje kontingenčnej tabuľky.

Alternatívne môžeme vo VBA písať makrá, ktoré nám údaje aktualizujú!

Obnovte všetky dátové pripojenia

Najjednoduchšou metódou na obnovu údajov je použiť VBA na napodobnenie toho, čo Obnoviť všetky tlačidlo na páse s nástrojmi.

123 Sub RefreshConnections ()ActiveWorkbook.RefreshAllKoniec pod

Táto metóda obnoví všetky pripojenia k akýmkoľvek údajom v zošite, ktoré máte aktívne. Tiež neobnoví iba jednu kontingenčnú tabuľku, ale obnoví viacero kontingenčných tabuliek, ak máte k rôznym množinám údajov pripojených viac ako jednu.

Obnovte všetky kontingenčné tabuľky

Na obnovenie iba kontingenčných tabuliek v našom zošite, ale vylúčenie akýchkoľvek iných dátových pripojení, môžeme použiť metódu tzv Tabuľka Refresh.

Ak máme v zošite viacero kontingenčných tabuliek, na ich obnovenie by sme museli prejsť všetky kontingenčné tabuľky. Aby sme to urobili, najskôr deklarujeme premennú kontingenčnej tabuľky a potom vytvoríme pre každú slučku, ktorá bude prechádzať všetkými kontingenčnými tabuľkami v aktívnom zošite.

123456 Sub RefreshPivotsOnly ()Dim tblPivot ako kontingenčnú tabuľkuPre každý tblPivot v programe ActiveWorkbook.PivotTablestblPivot.RefreshTableĎalej tblPivotKoniec pod

Podobné makro môžeme použiť na aktualizáciu kontingenčných tabuliek v našom Aktívny list než celý pracovný zošit. Potom by sme prešli cez kontingenčné tabuľky v ActiveSheet skôr ako ActiveWorkbook.

123456 Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot ako kontingenčnú tabuľkuPre každý tblPivot v programe ActiveSheet.PivotTablestblPivot.RefreshTableĎalej tblPivotKoniec pod

Toto makro by bolo najužitočnejšie, keby sme k nemu mali ľahký prístup ActiveSheet. Aby sme to dosiahli, môžeme na hárku vytvoriť tlačidlo na spustenie makra.

Obnovte jednu kontingenčnú tabuľku

Ak chceme iba obnoviť kontingenčnú tabuľku, na ktorej pracujeme, a nie všetky ostatné kontingenčné tabuľky v zošite, musíme identifikovať konkrétnu kontingenčnú tabuľku. Je to samozrejme za predpokladu, že poznáte názov kontingenčnej tabuľky - v tomto prípade Kontingenčná tabuľka 1.

123 Sub RefreshOneTableActiveSheet.PivotTables ("PivotTable1"). RefreshTableKoniec pod

Obnovuje sa vyrovnávacia pamäť kontingenčnej tabuľky

Ak máme v zošite viacero kontingenčných tabuliek, ale všetky používajú rovnaké údaje, môžeme namiesto obnovenia aktuálnej kontingenčnej tabuľky obnoviť vyrovnávaciu pamäť kontingenčných tabuliek. Obnovením vyrovnávacej pamäte sa potom automaticky obnovia všetky kontingenčné tabuľky, ktoré používajú údaje obsiahnuté vo vyrovnávacej pamäti.

123456 Sub RefreshCache ()Dim chPivot ako PivotCachePre každý chPivot v programe ActiveWorkbook.PivotCacheschPivot.RefreshNasledujúci chPivotKoniec pod
wave wave wave wave wave