Tento tutoriál předvede, jak aktualizovat kontingenční tabulku nebo všechny kontingenční tabulky pomocí jazyka VBA.
Kontingenční tabulky jsou mimořádně výkonným datovým nástrojem Excelu. Kontingenční tabulky nám umožňují analyzovat a interpretovat velké množství dat seskupením a shrnutím polí a řádků.
Když vytvoříme kontingenční tabulku, data se uloží do mezipaměti kontingenční tabulky. Data jsou proto uložena v mezipaměti počítače, což urychluje kontingenční tabulku.
Pokud je aktualizován zdroj dat kontingenční tabulky, samotná kontingenční tabulka se neaktualizuje. Uživatel v aplikaci Excel musí kliknout na Obnovit vše na kartě Data na pásu karet obnovte zdrojová data kontingenční tabulky.
Alternativně můžeme ve VBA psát makra, která nám data aktualizují!
Obnovte všechna datová připojení
Nejjednodušší metodou obnovení dat je použít VBA k napodobení toho, co Obnovit vše tlačítko na pásu karet.
123 | Sub RefreshConnections ()ActiveWorkbook.RefreshAllEnd Sub |
Tato metoda obnoví všechna připojení k jakýmkoli datům v sešitu, který máte aktivní. Neobnoví ani jednu kontingenční tabulku, ale obnoví více kontingenčních tabulek, pokud máte více než jednu připojenou k různým datovým sadám.
Obnovte všechny kontingenční tabulky
Chcete -li aktualizovat pouze kontingenční tabulky v našem sešitu, ale vyloučit všechna další datová připojení, můžeme použít metodu nazvanou Tabulka Obnovit.
Pokud máme v sešitu více kontingenčních tabulek, museli bychom všechny z nich konvertovat, abychom je všechny obnovili. Abychom to mohli provést, nejprve deklarujeme proměnnou kontingenční tabulky a poté vytvoříme pro každou smyčku smyčku přes všechny kontingenční tabulky v aktivním sešitu.
123456 | Sub RefreshPivotsOnly ()Dim tblPivot jako kontingenční tabulkuPro každý tblPivot v ActiveWorkbook.PivotTablestblPivot.RefreshTableDalší tblPivotEnd Sub |
Podobné makro můžeme použít k aktualizaci kontingenčních tabulek v našem Aktivní list spíše než celý sešit. Poté bychom provedli kontingenční tabulky v ActiveSheet spíše než Aktivní pracovní kniha.
123456 | Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot jako kontingenční tabulkuPro každý tblPivot v ActiveSheet.PivotTablestblPivot.RefreshTableDalší tblPivotEnd Sub |
Toto makro by bylo nejužitečnější, kdybychom k němu měli snadný přístup na našem ActiveSheet. Za tímto účelem můžeme na listu vytvořit tlačítko pro spuštění makra.
Aktualizujte jednu kontingenční tabulku
Pokud chceme pouze aktualizovat kontingenční tabulku, na které pracujeme, a ne všechny ostatní kontingenční tabulky v sešitu, musíme určit konkrétní kontingenční tabulku. To je samozřejmě tak dlouho, dokud znáte název kontingenční tabulky - v tomto případě Kontingenční tabulka 1.
123 | Sub RefreshOneTableActiveSheet.PivotTables ("PivotTable1"). RefreshTableEnd Sub |
Aktualizace mezipaměti kontingenční tabulky
Pokud máme v sešitu více kontingenčních tabulek, ale všechny používají stejná data, můžeme místo obnovení aktuální kontingenční tabulky aktualizovat mezipaměť kontingenční tabulky. Obnovením mezipaměti se pak automaticky obnoví všechny kontingenční tabulky, které používají data obsažená v mezipaměti.
123456 | Sub RefreshCache ()Dim chPivot jako PivotCachePro každý chPivot v ActiveWorkbook.PivotCacheschPivot.RefreshDalší chPivotEnd Sub |