Фильтрация нескольких сводных таблиц По значению ячейки одного листа - PullRequest
1 голос
/ 06 июня 2019

Моя конечная цель - иметь возможность фильтровать несколько сводных таблиц в одной рабочей таблице на основе значения ячейки (H3). В настоящее время у меня есть код, который отлично работает с одной сводной таблицей, и я пытаюсь добавить остальные. Любые рекомендации?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Set the Variables to be used

Dim pt As PivotTable

Dim Field As PivotField

Dim NewCat As String

  'Here you amend to suit your data

Set pt = Worksheets("Sheet1").PivotTables("PivotTable1")

Set Field = pt.PivotFields("Customer Name")

NewCat = Worksheets("Sheet1").Range("H3").Value



'This updates and refreshes the PIVOT table

With ActiveSheet.PivotTables("PivotTable1").PivotFields("Customer Name")

    .ClearAllFilters

    .PivotFilters.Add Type:=xlCaptionEquals, 

Value1:=ActiveSheet.Range("H3").Value

End With
End Sub

1 Ответ

1 голос
/ 06 июня 2019

Непроверенные:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim pt As PivotTable
    Dim NewCat As String

    'if this is in the sheet1 code module you can use
    '  "Me" in place of "Worksheets("Sheet1")"
    NewCat = Worksheets("Sheet1").Range("H3").Value
    Debug.Print "Filtering on '" & NewCat & "'"
    'loop over all pivottables on the sheet
    For Each pt In Worksheets("Sheet1").PivotTables
        With pt.PivotFields("Customer Name")
            .ClearAllFilters
            .PivotFilters.Add Type:=xlCaptionEquals, Value1:=NewCat
        End With
    Next pt

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...