У меня есть две разные сводные таблицы на разных листах Excel с использованием разных источников данных.Они оба имеют столбец «Стиль», который можно отфильтровать.Когда я фильтрую стиль по одной сводной таблице, я хочу, чтобы другая сводная таблица автоматически (или с помощью кнопки) фильтровала те же выбранные стили.
В настоящее время я работаю над этим кодом, найденным на другом форуме.В разделе объектов в VBA у меня есть:
Sub ChangePivotFilter()
Dim WS As Excel.Worksheet
Dim aWB As Excel.Workbook
Dim myPivot As Excel.PivotTable
Dim myPivotField As Excel.PivotField
Set aWB = ActiveWorkbook
For Each WS In aWB.Worksheets
For Each myPivot In WS.PivotTables
Set myPivotField = Nothing
On Error Resume Next
Set myPivotField = myPivot.PivotFields(“Style”)
myPivotField.CurrentPage = “Style”
Next myPivot
Next WS
End Sub
В разделе модулей в VBA у меня есть:
Sub Button1_Click()
Dim s$
Application.EnableEvents = False
If Target.Name = "PivotTable1" Then
With ThisWorkbook.PivotTables
Let s = .Item("PivotTable1").PivotFields("Style").CurrentPage
.Item("PivotTable2").PivotFields("Style").ClearAllFilters
.Item("PivotTable2").PivotFields("Style").CurrentPage = s
End With
Else
With ThisWorkbook.PivotTables
Let s = .Item("PivotTable2").PivotFields("Style").CurrentPage
.Item("PivotTable1").PivotFields("Style").ClearAllFilters
.Item("PivotTable1").PivotFields("Style").CurrentPage = s
End With
End If
Application.EnableEvents = True
End Sub