excel - 刷新数据透视表的 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
让我知道它是否有效
推荐阅读
- java - 带有 RecyclerView 的 setLayoutManager NullPointException
- c++ - 尝试使用 dynamic_cast 将基类对象(数组)转换为子类但没有成功
- google-apps-script - 如何引用特定的工作表
- paypal - 在 Paypal 智能支付按钮上设置国家 + 电话
- r - parse chr string into a dataframe using delimiters
- css - 如何将子 div 与可滚动父 div 的底部对齐
- css - 如何选择列表中的特定部分而不选择从开头开始并在结尾结束
- reactjs - React App 部署到 Azure Web 的流程?
- java - DateTimeParseException: Text '2019-08-13T07:29:12.000+0000' could not be parsed, unparsed text found at index 23
- r - Why are `invisible` and `capture.output` insufficient in removing both concatenated and diagnostic messages in R?