Как связать значение ячейки в качестве фильтра в сводной таблице PowerPivot в Excel? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть две сводные таблицы (PivotTable1 и PivotTable2) на листе PivotTables_Sheet и ячейка, которая показывает год на листе YearInput. Я попытался связать год ячейки (J4) в YearInput в качестве фильтра для всех сводных таблиц в сводной таблице.

Но почему-то мой код работает не так, как ожидалось. Кто-нибудь знает, как исправить этот код? Это код:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Target.Address = Range("J4").Address Then Exit Sub
     Dim pt As PivotTable
     Dim ptItem As PivotItem
   On Error Resume Next
  For Each pt In Worksheets("PivotTables_Sheet").PivotTables
    With pt.PivotFields("Year for Sales")
        If .EnableMultiplePageItems = True Then
            .ClearAllFilters
        End If
        Set ptItem = .PivotItems(Target.Value)
        If Not ptItem Is Nothing Then
            .CurrentPage = Target.Value
         End If
      End With
  Next
End Sub

Примечание. Я использую Excel 2010 и строю сводные таблицы с помощью PowerPivot.

1 Ответ

0 голосов
/ 17 сентября 2018

Одним из способов сделать это без VBA является использование среза, который является общим для всех опорных точек.Затем один год изменяется на один, он также обновляет другие сводные таблицы.

Это делается путем первого щелчка по сводной таблице, которая затем отображает на ленте параметр «Анализ».Под этим есть срез для вставки, который вы бы делали в течение года.

После этого вы переходите к другим вашим опорным точкам и вместо этого делаете подключение фильтра и выбираете свой срез для года.

Обратите внимание, чтоЗатем ограничитель года можно просто переместить на скрытый лист, если вы не хотите, чтобы конечный пользователь видел его, он по-прежнему будет выполнять свою работу по распространению года по всем сводным точкам, на которые он ссылается.

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