用于刷新数据透视表的 VBA 应用程序定义或对象定义错误



>您好,我在 excel 中录制了一个宏来刷新我想要选择的这些数据透视表,但是当我尝试运行宏时,它给了我此错误"应用程序定义或对象定义的错误"。我不太确定它为什么工作,因为我所做的只是点击记录宏,刷新我想要的表并使用它来刷新指定的表。

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 

我意识到某些数据透视表具有相同的名称并且位于不同的工作表中,因此我认为有些问题。

以下代码按名称引用Pivot Tables并刷新其缓存。缓存(源数据(应由使用它们的所有表刷新。

代码编辑:在数据透视表上使用刷新表方法

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

让我知道它是否有效

最新更新