【问题标题】:VBA: cannot work with PivotTable (error 1004)VBA:无法使用数据透视表(错误 1004)
【发布时间】:2019-05-31 10:37:17
【问题描述】:

好吧,我现在真的很沮丧。在过去的一个小时左右,我一直在尝试从一个简单的 Pivot 获取数据。我无法让它工作。

我非常简单的代码:

Sub getXXFromPivot()

     Dim test As PivotTable

     Set Sheet1 = ActiveWorkbook.Sheets("Sheet5")
     Set test = Sheet1.PivotTables("PivotTable1")
     Set test2 = test.ClearAllFilters

     MsgBox test2

End Sub

我正在尝试使用“GetPivotData”方法来获取数据,但是无论我在test. 之后使用什么(ClearAllFilters 只是一个测试)我总是以错误 1004 告终。我的错误是什么这里?我想不明白。 “数据透视表1”肯定存在。我可以MsgBox test 并找回“PivotTable1”。

【问题讨论】:

  • 您可能想要使用test.ClearAllFilters 而不是Set test2 = test.ClearAllFilters。此外,消息框中的消息必须是字符串,test 不是。你也应该用不同的名字声明Sheet1
  • 你确定你得到1004?此代码test2 = test.ClearAllFilters 应返回“类型不匹配”错误。
  • @DarXyde 真的,那很愚蠢。没有 Set 清除过滤器工作正常,但我仍然不知道如何从 Pivot 获取任何数据。有什么想法吗?

标签: excel vba pivot pivot-table


【解决方案1】:

添加到我的评论中,请参阅下面对您的代码的改编:

Option Explicit 'Is recommended to use this always
Sub getXXFromPivot()

    Dim sht As Worksheet
    Dim pTbl As PivotTable

    Set sht = ActiveWorkbook.Sheets("Sheet5")
    Set pTbl = sht.PivotTables("PivotTable1")
    pTbl.ClearAllFilters

    MsgBox pTbl.Name

End Sub

关于如何使用数据透视表的一个很好的来源,请参阅The VBA Guide To Excel Pivot Tables

【讨论】:

  • 谢谢。到目前为止,这有效。我最终需要的是 Pivot 中数据的列表/数组。它只是一个没有部分的列。我该怎么办?
  • 使用函数GetPivotData(field,pivottable,filter1,criteria1,filter2,criteria2...)
【解决方案2】:

您可以决定使用数据透视表的TableRange1TableRange2properties 并循环访问它们。这是主要区别:

  • TableRange1 - 返回一个 Range 对象,该对象表示包含整个数据透视表的范围,但不包括页面字段。只读。

  • TableRange2 - 返回一个 Range 对象,该对象表示包含整个数据透视表(包括页面字段)的范围。只读。


Sub GetXXFromPivot()

     Dim pt As PivotTable
     Dim wks As Worksheet

     Set wks = Worksheets(1)
     Set pt = wks.PivotTables("PivotTable1")

     Dim myResult As Range
     Set myResult = pt.TableRange2

     Dim myCell As Range
     For Each myCell In pt.TableRange2.Cells
        Debug.Print myCell
     Next myCell

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多