【问题标题】:Pivot Table does not refresh using VBA数据透视表不使用 VBA 刷新
【发布时间】:2021-04-12 09:50:16
【问题描述】:

我在 excel 365 中创建了一个数据透视表

我的源数据在 Ms Access Query 中

我在 Excel 中构建了一个宏来刷新数据透视,但收到一条错误消息。

Runtime error 1004

Unable to get PivotTables property of the worksheet class

我写的代码:

Sub Refresh_Pivot01()
'
' Refresh_Pivot01 Macro
'
Sheets("PivotData").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh*

End Sub

代码 ThisWorkbook.RefreshAll 仅在 sourcedata 位于同一个 excelsheet 中并且在我的情况下 sourcedata 位于 MS Access Query 中时才有效

一定有什么问题,但我想不通! 有人可以帮我吗??

【问题讨论】:

    标签: excel vba ms-access pivot refresh


    【解决方案1】:

    无需选择东西 (read here why)

    完全限定您的对象。

    看看我如何使用它们的指针设置对workbooksheetpivot table 的引用

    TheWorkbookName 替换为实际工作簿名称

    Public Sub RefreshPivotTable()
        
        Dim targetWorkbook As Workbook
        Set targetWorkbook = Workbooks("TheWorkbookName")
        
        Dim targetSheet As Worksheet
        Set targetSheet = targetWorkbook.Worksheets("PivotData")
        
        targetSheet.PivotTables("PivotTable1").PivotCache.Refresh
    
    End Sub
    

    让我知道它是否有效

    【讨论】:

    • 嗨,理查德,感谢您的快速回复;我复制了你的代码行但得到了同样的错误信息; Public Sub RefreshPivotTable() Dim targetWorkbook As Workbook Set targetWorkbook = Workbooks("Cemis-Recharge_02.xlsm") Dim targetSheet As Worksheet Set targetSheet = targetWorkbook.Worksheets("PivotData") targetSheet.PivotTables("PivotTable1").PivotCache.Refresh End子
    • 如果按F8key调试代码,哪一行会出现错误?
    • 应用程序定义或对象定义错误
    • 这就是错误。但是代码中的哪一行提高了它?
    • 如果我将编码更改为“Pivottable2”,我会收到另一个错误消息:方法数据透视表或对象工作表失败
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2016-09-07
    相关资源
    最近更新 更多