PivotTableWizard - 作为列标题的数据字段的名称

时间:2014-01-27 11:10:32

标签: excel vba excel-vba

我正在使用VBA PivotTableWizard方法从Excel工作表创建数据透视表。

我用sum函数定义了两个行字段和两个数据字段。默认情况下,数据字段的名称在数据透视表中显示为行字段名称中的行描述。

我希望将数据字段的名称显示为列标题。在向导中,用户将“Sum sign - Values”字段拖到Column Labels框中。如何通过代码完成?

这是我到目前为止所拥有的:

' Create the PivotTable object based on the data on the selected sheet
Set tm_volumes_pivot_table = ActiveSheet.PivotTableWizard


'Page fields
Set tm_volumes_pivot_field = tm_volumes_pivot_table.PivotFields("Article Type")
tm_volumes_pivot_field.Orientation = xlPageField

'Row fields
Set tm_volumes_pivot_field = tm_volumes_pivot_table.PivotFields("Main Area")
tm_volumes_pivot_field.Orientation = xlRowField
Set tm_volumes_pivot_field = tm_volumes_pivot_table.PivotFields("Subarea")
tm_volumes_pivot_field.Orientation = xlRowField


'Column fields
'Must be Names of Data Fields - how?


'Data fields
Set tm_volumes_pivot_field = tm_volumes_pivot_table.PivotFields("Initial Volume")
tm_volumes_pivot_field.Orientation = xlDataField
tm_volumes_pivot_field.Function = xlSum
tm_volumes_pivot_field.NumberFormat = "#"

Set tm_volumes_pivot_field = tm_volumes_pivot_table.PivotFields("Final Volume")
tm_volumes_pivot_field.Orientation = xlDataField
tm_volumes_pivot_field.Function = xlSum
tm_volumes_pivot_field.NumberFormat = "#"

1 个答案:

答案 0 :(得分:0)

转移OP的回答:

当数据透视表具有多个数据字段时,数据透视表字段列表的放置区中会有一个名为Values的虚拟字段。在VBA中,此等效虚拟字段命名为" Data"。 - 这将用于按列排列数据。

'Define Pivot Fields (Rows / Columns - Attention to "Data" / Page)
tm_volumes_pivot_table.AddFields Array("Main Area", "Subarea"), "Data", "Article Type"
相关问题