Acest tutorial va arăta cum să reîmprospătați un tabel pivot sau toate tabelele pivot folosind VBA.
Tabelele pivot sunt un instrument de date extrem de puternic al Excel. Tabelele pivot ne permit să analizăm și să interpretăm cantități mari de date prin gruparea și rezumarea câmpurilor și rândurilor.
Când creăm un tabel pivot, datele sunt stocate în ceea ce este cunoscut sub numele de cache a tabelului pivot. Prin urmare, datele sunt stocate în memoria cache a computerului, care accelerează tabelul pivot.
Dacă sursa de date a tabelului pivot este actualizată, tabelul pivot în sine nu se actualizează. Utilizatorul din Excel trebuie să facă clic pe Reîmprospătați toate butonul din fila Date de pe panglică pentru a reîmprospăta datele sursă ale tabelului pivot.
Alternativ, putem scrie macrocomenzi în VBA care vor actualiza datele pentru noi!
Reîmprospătați toate conexiunile de date
Cea mai simplă metodă de reîmprospătare a datelor este utilizarea VBA pentru a imita ceea ce Reîmprospătați toate butonul face pe panglică.
123 | Sub RefreshConnections ()ActiveWorkbook.RefreshAllSfârșitul Sub |
Această metodă va reîmprospăta toate conexiunile la orice date din registrul de lucru pe care le aveți active. De asemenea, nu va reîmprospăta doar un singur tabel pivot, ci va reîmprospăta mai multe tabele pivot dacă aveți mai multe conectate la diferite seturi de date.
Actualizați toate tabelele pivot
Pentru a reîmprospăta doar tabelele pivot din registrul nostru de lucru, dar pentru a exclude orice alte conexiuni de date, putem folosi o metodă numită RefreshTable.
Dacă avem mai multe tabele pivot în registrul nostru de lucru, ar trebui să parcurgem toate tabelele pivot pentru a le reîmprospăta pe toate. Pentru a face acest lucru, declarăm mai întâi o variabilă a tabelului pivot și apoi creăm un Pentru fiecare buclă pentru a parcurge toate tabelele pivot din registrul de lucru activ.
123456 | Sub RefreshPivotsOnly ()Dim tblPivot ca tabel pivotPentru fiecare tblPivot din ActiveWorkbook.PivotTablestblPivot.RefreshTableUrmătorul tblPivotSfârșitul Sub |
Putem folosi o macro similară pentru a actualiza tabelele din pivot în Foaie activă mai degrabă decât întregul registru de lucru. Am face apoi o buclă prin tabelele pivot în Foaie activă mai degrabă decât ActiveWorkbook.
123456 | Sub RefreshActiveSheetPivotsOnly ()Dim tblPivot ca tabel pivotPentru fiecare tblPivot din ActiveSheet.PivotTablestblPivot.RefreshTableUrmătorul tblPivotSfârșitul Sub |
Această macrocomandă ar fi cea mai utilă dacă am avea acces ușor la ea prin intermediul nostru Foaie activă. Pentru aceasta, putem crea un buton pe foaie pentru a rula macro-ul.
Reîmprospătați un tabel pivot
Dacă vrem doar să reîmprospătăm tabelul pivot la care lucrăm și nu toate celelalte tabele pivot din registrul de lucru, trebuie să identificăm tabelul pivot specific. Aceasta este, desigur, atâta timp cât știți numele tabelului pivot - în acest caz PivotTable1.
123 | Sub RefreshOneTableActiveSheet.PivotTables ("PivotTable1"). RefreshTableSfârșitul Sub |
Reîmprospătarea memoriei cache a tabelului pivot
Dacă avem mai multe tabele pivot în registrul nostru de lucru, dar toate utilizează aceleași date, putem actualiza memoria cache a tabelului pivot, mai degrabă decât să actualizăm tabelul pivot real. Reîmprospătarea cache-ului va reîmprospăta automat toate tabelele pivot care utilizează datele conținute în cache.
123456 | Sub RefreshCache ()Dim chPivot Ca PivotCachePentru fiecare chPivot din ActiveWorkbook.PivotCacheschPivot.RefreshUrmătorul chPivotSfârșitul Sub |