我正在尝试运行这个非常简单的代码,我已将其嵌入到按钮中以刷新枢轴:
Sub Button5_Click()
ThisWorkbook.Worksheets("DD").PivotTables("test").PivotCache.REFRESH
End Sub
在下面的照片中,您可以看到我正在处理的工作表以及数据透视表的名称。
看起来我的代码指向了正确的东西,所以我无法理解为什么会出现这个错误。我也没有使用过ThisWorkbook就试过了。
工作簿照片
答案 0 :(得分:0)
为了更新PivotTables("test")
in" DD"在工作表中,您需要先使用范围中的更新更新PivotCache
PivotTable
从中检索数据。然后到表Refresh
。
我已使用以下行为Range
定义PivotCache
(仅适用于此代码运行):
Set PvtDataRng = Worksheets("PivotDataSheet").Range("A1:E100")
修改工作表的名称和needee范围以适合您的数据。
<强>代码强>
Option Explicit
Sub Button5_Click()
Dim PvtTbl As PivotTable
Dim PvtCache As PivotCache
Dim PvtDataRng As Range
' Set/Update Pivot Data Range
Set PvtDataRng = Worksheets("PivotDataSheet").Range("A1:E100") ' <-- just an example
' Create/Update Pivot Cache
Set PvtCache = ActiveWorkbook.PivotCaches.Add(xlDatabase, PvtDataRng)
' Set the Pivot Table (already created, otherwise need to create it)
Set PvtTbl = Worksheets("DD").PivotTables("test")
' refresh the Pivot Table with the latest Pivot Cache
With PvtTbl
.ChangePivotCache PvtCache
.RefreshTable
End With
End Sub