Итак, я пытаюсь сделать так, чтобы сводная таблица была отфильтрована по списку определенных элементов, а эти элементы взяты из массива, созданного путем извлечения значений из столбца в другой таблице.
У меня все вышеперечисленное работает!...вроде, как бы, что-то вроде.Он работает, когда я проверяю его, получая коды клиентов из того же источника данных, из которого извлекается сводная таблица.
Однако, как только я изменяю свой код, вместо этого извлекаю значения из отдельной вкладки со столбцом значений я получаю сообщение об ошибке:
Ошибка времени выполнения «1004»: элемент не найден в кубе OLAP.
Вот код, который у меня сейчас есть:
Sub FilterByColumnValues()
'set variables
Dim MyArray As Variant
Dim OGDataRange As Range, OGDataLastRow As Long
'Create range from customer tab list
OGDataLastRow = Worksheets("Custs-Chico").Range("D2").End(xlDown).Row
Set OGDataRange = Worksheets("Custs-Chico").Range("D2:D" & OGDataLastRow)
'Test array
'MyArray = OGDataRange.Value
MyArray = Application.Transpose(OGDataRange.Value)
MsgBox "Here is a preview of my array: " & Chr(10) & Join(MyArray, Chr(10))
Worksheets("QTD Sales").PivotTables("QTD_Pivot_By_Category").PivotFields("[Range].[CustCode].[CustCode]").VisibleItemsList = MyArray
End Sub
Массив предварительного просмотра выглядит великолепно.Элементы отображаются как "[Range]. [CustCode]. & [####]", #### - мои коды клиентов.Вот так:
"Custs-Chico" - моя вкладка с плоскими несвязанными данными.Если я просто изменю это значение на вкладку «DATA QTD», , которая является вкладкой, которая является источником данных для моей сводной таблицы, то код работает !
Так что мой вопрос... как мне обойти эту ошибку?Мне нужно отфильтровать по определенному списку элементов на другой вкладке, а не по каждому элементу, уже находящемуся в списке / подключенном источнике данных / "кубе OLAP" (извините, не очень хорошее понимание структур данных здесь с OLAP), что сводит на нетсуть целиком.
Спасибо!