VBA atsvaidzināt rakurstabulu | Automātiski atsvaidzināt visu rakurstabulu, izmantojot VBA

Excel VBA atsvaidzināt rakurstabulu

Ievietojot rakurstabulu lapā, kad dati mainās, rakurstabulas dati nemainās, mums tas jādara manuāli, bet VBA ir paziņojums, lai atsvaidzinātu rakurstabulu, kas ir izteiksme. Atjaunojama , izmantojot šo, mēs varam atsvaidzināt rakurstabula, atsaucoties uz to veidojošo darblapu, vai arī mēs varam atsaukties uz visām darblapās esošajām rakurstabulām un atsvaidzināt tās visas vienlaikus.

Pagrieziena tabula ir būtiska, analizējot milzīgo datu apjomu. Tas palīdz analizēt, apkopot, kā arī veikt noderīgu datu interpretāciju. Tomēr viena no šīs rakurstabulas problēmām ir tā, ka tā netiks automātiski atsvaidzināta, ja mainīsies avota dati. Lietotājam ir jāatsvaidzina rakurstabula, dodoties uz konkrēto rakurstabulu katru reizi, kad notiek izmaiņas. Bet atvadieties no manuālā procesa, jo šeit mums ir metode, kā atsvaidzināt rakurstabulu, tiklīdz veicat izmaiņas rakurstabulā.

Kā automātiski atsvaidzināt rakurstabulas datu VBA kodu?

Vienīgā reize, kad rakurstabula ir jāatjaunina, ir gadījums, kad tiek mainītas atsauces rakurstabulas avota dati.

Piemēram, aplūkojiet zemāk redzamos datus un rakurstabulu.

Tagad es mainīšu skaitļus avota datos, ti, no A1 uz B17.

Šūnā B9 man ir jāmaina vērtība no 499 uz 1499, ti, datu pieaugums par 1000, bet, ja paskatās uz rakursu, rezultāts joprojām tiek rādīts kā 4295, nevis 5295. Man ir manuāli jāatsvaidzina rakurstabula, lai atjauninātu rakurstabulu.

Lai pārvarētu šo problēmu, mums ir jāuzraksta vienkāršs Excel makro kods, lai atsvaidzinātu rakurstabulu ikreiz, kad avota datos notiek kādas izmaiņas.

Šo VBA Refresh Pivot Table Excel veidni varat lejupielādēt šeit - VBA Refresh Pivot Table Excel veidne

# 1 - vienkāršs makro, lai atsvaidzinātu visu tabulu

1. solis: Mainiet datu lapas notikumu

Mums jāaktivizē datu lapas izmaiņu notikums. Vizuālā pamata redaktorā veiciet dubultklikšķi uz datu lapas.

Kad veicat dubultklikšķi uz lapas, atlasiet “Darblapa” un atlasiet notikumu kā “Mainīt”.

Tiks parādīta automātiska apakšprocedūra, kas atvērta kā Worksheet_Change (ByVal Target As Range)

2. darbība: izmantojiet darblapas objektu

Izmantojot objektu Darblapas, skatiet datu lapu.

3. darbība: skatiet rakurstabulu pēc nosaukuma

Skatiet rakurstabulas nosaukumu pēc rakurstabulas nosaukuma.

4. solis: izmantojiet tabulas atsvaidzināšanas metodi

Izvēlieties metodi kā “Atsvaidzināt tabulu”.

Tagad šis kods atsvaidzinās rakurstabulu “PivotTable1” ikreiz, kad avota datu lapā būs kādas izmaiņas. Varat izmantot zemāk redzamo kodu, jums vienkārši jāmaina rakurstabulas nosaukums.

Kods:

 Privāta apakšdarblapa_maina (ByVal mērķis kā diapazons) darblapa ("Datu lapa"). PivotTables ("PivotTable1"). RefreshTable End Sub 

# 2 - atsvaidziniet visas vienas darblapas rakurstabulas

Ja vienā darblapā ir daudz rakurstabulu, varat atsvaidzināt visas rakurstabulas ar vienu klikšķi. Izmantojiet šo kodu, lai atsvaidzinātu visas rakurstabulas lapā.

Kods:

 Sub Refresh_Pivot_Tables_Example1 () darblapas ("Datu lapa"). Atlasiet ar ActiveSheet .PivotTables ("Table1"). RefreshTable .PivotTables ("Table2"). RefreshTable .PivotTables ("Table3"). RefreshTable .PivotTables ("Table4"). RefreshTable .PivotTables ("Table5"). RefreshTable Beigas ar End Sub 

Jums ir jāmaina darblapas nosaukums un rakurstabulu nosaukumi atbilstoši darblapas detaļām.

# 3 - Atsvaidziniet visas darbgrāmatas tabulas

Diez vai mums ir visas rakurstabulas vienā darblapā. Parasti katram pārskatam mēs cenšamies pievienot atsevišķas rakurstabulas atsevišķās lapās. Šādos gadījumos mēs nevaram turpināt rakstīt katras atsvaidzināmās rakurstabulas kodu.

Tātad, ko mēs varam darīt, ir ar vienu kodu, izmantojot cilpas, kuras mēs varam aplūkot visās darbgrāmatas rakurstabulās un atsvaidzināt ar vienu klikšķi uz pogas.

Zemāk redzamais kods veiks cilpu tabulu un tās atsvaidzinās.

1. kods:

 Sub Refresh_Pivot_Tables_Example2 () Aptumšot PT kā rakurstabulu katram ActiveWorkbook PT. PivotTables PT. RefreshTable Nākamais PT beigu apakšsadaļa 

2. kods:

 Sub Refresh_Pivot_Tables_Example3 () Dim PC kā PivotCache katram datoram programmā ActiveWorkbook.PivotCache PC. Atsvaidzināt nākamo PT beigu apakšdaļu 

Abi kodi atsvaidzinās rakurstabulas.

Ja vēlaties, lai rakurstabula tiktu atsvaidzināta, tiklīdz mainās pagriežamās lapas datu lapa, iepriekšējie kodi ir jākopē un jāielīmē darbgrāmatas notikumā Darblapas maiņa.

# 4 - Izvairieties no ielādes laika, izmantojot darblapu Deaktivizēt notikumu

Kad mēs izmantojam notikumu “Darblapas maiņa”, tas tiek atsvaidzināts pat tad, ja datu avotā nav izmaiņu, bet, ja darblapā notiek kādas izmaiņas.

Pat ja darblapā ievadāt vienu punktu, tas mēģina atsvaidzināt rakurstabulu. Tāpēc, lai no tā izvairītos, metodes “Darblapas maiņa” vietā varam izmantot metodi “Darblapas deaktivizēšana”.

Deaktivizējiet notikumu atjauninājumus rakurstabulā, pārejot no vienas lapas uz otru.