Menggunakan beberapa contoh yang saya temukan online, saya menulis VBA berikut yang memenuhi apa yang saya butuhkan. Saya menempatkan tabel pivot kosong di halaman ringkasan saya, dan sebuah tombol yang terhubung dengan makro ini yang memperbarui semua tabel pivot lainnya dengan filter yang sama.
PENOLAKAN: Ini tidak akan berfungsi untuk bidang yang memiliki "(Semua)" Dipilih. Itu tidak perlu bagi saya untuk melihat ke dalam, tetapi mungkin untuk mengubah kode berikut untuk memasukkan dukungan "(Semua)".
Sub UpdateAllPivotTables()
Dim ws As Worksheet
Dim wsMain As Worksheet
Dim ptMain As PivotTable
Dim pt As PivotTable
Dim pfMain As PivotField
Dim piMain As PivotItem
Dim pi As PivotItem
Dim pf As PivotField
Dim hadError As Boolean
On Error Resume Next
Set wsMain = ActiveSheet
Set ptMain = ActiveSheet.PivotTables(1)
Application.EnableEvents = False
For Each ws In ThisWorkbook.Worksheets
If (Not (ws.Name = wsMain.Name)) Then
ws.Unprotect
For Each pt In ws.PivotTables
pt.ManualUpdate = True
For Each pf In pt.PageFields
For Each pi In pf.PivotItems
If (Not (pi.Visible = ptMain.PageFields(pf.Name).PivotItems(pi.Name).Visible)) Then
pi.Visible = ptMain.PageFields(pf.Name).PivotItems(pi.Name).Visible
End If
Next pi
Next pf
pt.ManualUpdate = False
Next pt
'ws.Protect
End If
Next ws
Application.EnableEvents = True
End Sub