Фон
У меня есть два файла (назовем их Book1 и Book2), которые связаны друг с другом (с индексными формулами MATCH MATCH; следовательно, внешняя ссылка).
Книга 1: содержит список предметов (например, яблоко, банан, апельсин) и количества для каждого предмета на одном листе (лист1), которые затем суммируются в сводной таблице на листе 2.
Book2: представляет собой сводный список и в основном ищет количества из Book1 с совпадением индекса (которое работает идеально).
Необработанные данные сбрасываются (с использованием Alteryx) в Книгу 1 (Лист1).
Задача
Есть ли способ обновить данные в сводной таблице (Book1.Sheet2), не открывая файл, а открывая Book2?
Trial
Вот код, который я нашел в своем исследовании, который, кажется, работает для других, но не для меня:
Public Sub refreshXLS()
Path = "C:\Users\cae0030\Documents\Book1.xlsx" 'the workbook path you want to refresh
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
.AskToUpdateLinks = False
End With
Workbooks.Open Path
Application.AskToUpdateLinks = False
PivotTable.RefreshTable
ActiveWorkbook.Close True
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.EnableEvents = True
.AskToUpdateLinks = True
End With
End Sub
Обычно, когда я открываю Book2, ничего не происходит. Когда я открываю VBA и пытаюсь запустить его вручную, он выдает ошибку «Требуется объект 424» для PivotTable.RefreshTable
. Это не выдает ошибку при открытии Book2, но также ничего не обновляет.
Кто-нибудь знает, что не так с моим кодом, или знает, как я могу заставить его работать (с другим кодом)?
Спасибо!