我的 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 指令,但显示的指令是我真正认为应该正确的指令,但不起作用。
.Value
解决问题(在M365上测试)AddDataField
的第二个参数)不能与字段名称相同。微软文档:
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