VBA Runtime 1004"引用无效" - 数据透视刷新宏

时间:2017-03-10 15:13:02

标签: excel excel-vba vba

我正在尝试运行这个非常简单的代码,我已将其嵌入到按钮中以刷新枢轴:

Sub Button5_Click()
    ThisWorkbook.Worksheets("DD").PivotTables("test").PivotCache.REFRESH
End Sub

在下面的照片中,您可以看到我正在处理的工作表以及数据透视表的名称。

看起来我的代码指向了正确的东西,所以我无法理解为什么会出现这个错误。我也没有使用过ThisWorkbook就试过了。

工作簿照片

enter image description here

1 个答案:

答案 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