VBA - Obnovit kontingenční tabulku / všechny kontingenční tabulky

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
wave wave wave wave wave