У меня есть рабочая книга, которая подключается к моделям данных через PowerPivot, а полученные сводные таблицы фильтруются на основе заданного массива, собранного в процессе различий.
Sub AccrualPivot()
'Filter the data for the accrual entries that have been made.
Dim myArray() As Variant
Dim myR As Range
Sheets("Tables").Activate
Sheets("Tables").Range("JournalNum1").Select
Set myR = Sheets("Tables").Range("JournalNum1")
ReDim myArray(0 To myR.Cells.Count - 1)
Sheets("Data").Select
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[DataEntry].[DataEntry]").ClearAllFilters
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[JournalNum].[JournalNum]").ClearAllFilters
For i = 0 To myR.Cells.Count - 1
myArray(i) = "[Query].[JournalNum].&[" & myR.Cells(i + 1).Value & "]"
Next i
'ERROR THROWS HERE
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[JournalNum].[JournalNum]").VisibleItemsList = myArray
'This filters out the Data entries, which need to be included in a separate pivot.
ActiveSheet.PivotTables("AccrualPivot").PivotFields( _
"[Query].[DataEntry].[DataEntry]").CurrentPageName = _
"[Query].[DataEntry].&[0]"
End Sub
Ошибка в указанной строке:
Ошибка времени выполнения '1004': элемент не может быть найден в кубе OLAP.
Когда я помещаю часы в эту строку, оба выражения являются вариантами иmyArray заполнен необходимой информацией.Кикер (и я предполагаю, что корень) заключается в том, что это работает в моем исходном файле. Но мне нужно иметь возможность сохранять как рабочую книгу, чтобы пролонгировать каждый месяц.
Мне нужен файл на 4.30, 5.31 и т. Д. Если я сохраняю рабочую книгу как следующий месяц, меняю даты и запускаю все, это работает.Но если я закрываю этот файл, снова открываю и пытаюсь запустить, я получаю ошибку 1004.
Нигде в модуле я не ссылаюсь на имя файла или путь к файлу.Они даже сохраняются по одному и тому же пути, как отдельные месяцы, и все листы называются одинаково.Я предполагаю, что это где-то встроено, что я не могу найти.