Я попробовал два разных подхода для решения этой проблемы:
У меня есть сводная таблица, созданная на основе 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 перестает работать, когда он должен вставить текст в качестве динамического изменения продавцов Код