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 |