在 Excel 中使用 VBA 配置数据透视表

问题描述 投票:0回答:1

我的 VBA 代码创建了一个数据透视表,但没有配置它。 这是创建 Pivot_table 的代码:

Set PivotSICRange = Range(WSAP.Cells(1, 2), WSAP.Cells((APIndexRow + 1), (APColumn - 2)))

Set PivotSICCache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase,      SourceData:=PivotSICRange)

Set PivotSIC = PivotSICCache.CreatePivotTable(TableDestination:=WSAP.Cells(1, 10), TableName:="SIC Code Pivot")

请注意 APIndexRow+1 为 62(表格的最后一行),APColumn-2 为 4(D 列,即表格的最后一列) 它在正确的位置创建数据透视表并关联正确的参数。这意味着我看到了 Pivot_Table,如果选择它,我会看到字段(在 B、C 和 D 列中,根据上面的配置),但它们未被选中。 我在下面附上两张图片,以便更好地解释

但是,当我尝试配置数据透视表时,我收到了著名的错误: “无法获取数据透视表类的 PivotFields 属性”

我使用的说明(位于上面显示的其他说明的正下方): 错误出现在“With”语句(PivotFields)之后的第一行。

 With PivotSIC
.PivotFields(WSAP.Cells(1, 3)).Orientation = xlRowField
.PivotFields(WSAP.Cells(1, 2)).Orientation = xlRowField
.AddDataField .PivotFields(WSAP.Cells(1, 4)), WSAP.Cells(1, 4), xlSum
End With

谢谢

桌子

数据透视表

我尝试了不同版本的 VBA 指令,但显示的指令是我真正认为应该正确的指令,但不起作用。

excel vba pivot-table
1个回答
0
投票
  • 添加
    .Value
    解决问题(在M365上测试)
  • 数据字段的标题(
    AddDataField
    的第二个参数)不能与字段名称相同。

微软文档:

数据透视表.AddDataField 方法 (Excel)

With PivotSIC
   .PivotFields(WSAP.Cells(1, 3).Value).Orientation = xlRowField
   .PivotFields(WSAP.Cells(1, 2).Value).Orientation = xlRowField
   .AddDataField .PivotFields(WSAP.Cells(1, 4).Value), "Sum of " & WSAP.Cells(1, 4).Value, xlSum
End With
© www.soinside.com 2019 - 2024. All rights reserved.