Ошибка приложения VBA или объекта для обновления сводных таблиц - PullRequest
0 голосов
/ 14 февраля 2020

Здравствуйте. Я записал макрос в excel, чтобы обновить sh эти сводные таблицы, которые я хочу выбрать, однако, когда я пытаюсь запустить макрос, он выдает мне эту ошибку "ошибка приложения или объекта". Я не совсем уверен, почему это работает, потому что все, что я делал, это нажимал на запись «Макрос», обновлял таблицы, которые хотел, и использовал это для обновления sh указанных таблиц.

Sub Refresh()
'
' Refresh Macro
'

'
    Sheets("F-Pivots").Select
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    Sheets("P-Pivots").Select
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    Sheets("F-Y-Reject P.").Select
    ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh
    Sheets("P-Y-Reject P.").Select
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    Sheets("F-Y-DT P.").Select
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
    Sheets("P-Y-DT P.").Select
    ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    Sheets("Monthly Data").Select
    ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
    Range("B4").Select
    ActiveSheet.PivotTables("PivotTable100").PivotCache.Refresh
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    Sheets("Heatmap").Select
End Sub 


1 Ответ

0 голосов
/ 15 февраля 2020

Я понял, что некоторые из сводных таблиц имеют одно и то же имя и расположены на разных листах, поэтому я считаю, что что-то не так.

Следующий код ссылается на Pivot Tables по имени и обновляет их кэш. Кэш (исходные данные) должен обновляться всеми использующими их таблицами.

Код: РЕДАКТИРОВАТЬ: Использовать метод таблицы refre sh в сводной таблице

Public Sub Refresh()

    Range("PivotTable1").PivotTable.RefreshTable
    Range("PivotTable2").PivotTable.RefreshTable
    Range("PivotTable3").PivotTable.RefreshTable
    Range("PivotTable100").PivotTable.RefreshTable

    ThisWorkbook.Worksheets("Heatmap").Activate

End Sub

Дайте мне знать, если это работает

...