Могу ли я динамически изменить фильтр текущей страницы Power Pivot Pivot Table или путем изменения фильтра слайсера - PullRequest
0 голосов
/ 14 октября 2019

Я попробовал два разных подхода для решения этой проблемы:

У меня есть сводная таблица, созданная на основе Power Pivot Datamodel. Я попытался создать код для фильтра текущей страницы, чтобы изменить его на основе списка ячеек, в который введены данные продавцов.

Мой код здесь:

Sub Macro1()
'
' Macro1 Macro
'

Dim rng As Range
Dim txt As String

Set rng = Application.Range("Rapport!M3:M4")
Dim cel As Range
For Each cel In rng.Cells
    With cel
    txt = cel.Value
    ActiveSheet.PivotTables("PivotTable1").PivotFields( _
    "[Stage BudgetLine].[SalespersonCode]. 
   [SalespersonCode]").ClearAllFilters _
        ActiveSheet.PivotTables("PivotTable1").PivotFields( _
    "[Stage BudgetLine].[SalespersonCode].[SalespersonCode]").CurrentPage = _
    "[Stage BudgetLine].[SalespersonCode].&[" & txt & "]"
    '"[Closed Cases].[Closed Date Week End].&[" & FilterDate & "]"
'        Debug.Print .Address & ":" & .Value
End With
Next cel

End Sub

, тогда я попробовал слайсер, который работает, если я жестко кодирую SalesPersonsCode, но не когда я пытаюсь сделать его гибким:

Sub Macro2()
'
' Macro2 Macro
'

'
Dim rng As Range
Dim txt As String

Set rng = Application.Range("Rapport!M3:M4")
Dim cel As Range
For Each cel In rng.Cells
    With cel
      txt = cel.Value



 ActiveWorkbook.SlicerCaches("Slicer_SalespersonCode"). _ 
VisibleSlicerItemsList 
= _
'        Array("[Stage BudgetLine].[SalespersonCode].&[AC]")
   Array("[Stage BudgetLine].[SalespersonCode].&[" & txt & "]")
  ActiveWorkbook.SlicerCaches("Slicer_SalespersonCode").ClearManualFilter


 ActiveWorkbook.SlicerCaches("Slicer_SalespersonCode"). _
 VisibleSlicerItemsList 
= _
        Array( _
    "[Stage BudgetLine].[SalespersonCode].&[AGE]")
ActiveWorkbook.SlicerCaches("Slicer_SalespersonCode").ClearManualFilter


End With
Next cel
End Sub

Я пытался прочитать о проблемах, связанных с предметом. Насколько я вижу, некоторые говорят, что я должен сделать возможным выбор нескольких элементов в моем фильтре. Я могу понять, что я должен обрабатывать это как массив, но у меня ничего не работает.

VBA перестает работать, когда он должен вставить текст в качестве динамического изменения продавцов Код

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