12

我正在尝试使用代码来选择数据透视表中一个子标题下的所有行。我收到运行时错误 1004:

无法获取数据透视表类的 PivotFields 属性

从这段代码:

 Sub ttest()
 Dim pt As PivotTable
 Set pt = Sheets("Report").PivotTables("PivotTable1")

 pt.PivotFields("Row Labels").PivotItems("CL").DataRange.Select

 End Sub

为什么?

4

2 回答 2

5

正如 JosieP 在评论中所说,1004错误意味着没有这样object的,即没有pivot field所谓的“行标签”。

于 2016-05-11T08:14:14.277 回答
4

我可能会添加一个额外的答案(因为我什么也没找到):

对于使用数据模型数据透视表的人来说,字段名称并不明显([ tablename ].[ fieldname ].[ fieldname2 ])。因此,我建议使用以下循环来了解数据透视表中当前有哪些字段:

Dim pt As PivotTable
Dim pf As PivotField

Set pt = ActiveSheet.PivotTables(ptName)

For Each pf In pt.PivotFields
    Debug.Print pf.Name
Next

这样,您将在即时视图中列出所有名称。

于 2020-04-07T09:36:04.057 回答