Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 数据透视表向导-作为列标题的数据字段的名称_Vba_Excel - Fatal编程技术网

Vba 数据透视表向导-作为列标题的数据字段的名称

Vba 数据透视表向导-作为列标题的数据字段的名称,vba,excel,Vba,Excel,我正在使用VBA数据透视表向导方法从Excel工作表创建数据透视表 我用sum函数定义了两个行字段和两个数据字段。默认情况下,数据字段的名称在透视表中显示为行字段名称右侧的行描述 我希望将数据字段的名称显示为列标题。在向导中,用户将“总和符号-值”字段拖到“列标签”框中。如何通过代码实现这一点 这就是我目前所拥有的: ' Create the PivotTable object based on the data on the selected sheet Set tm_volumes_pivo

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

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

我希望将数据字段的名称显示为列标题。在向导中,用户将“总和符号-值”字段拖到“列标签”框中。如何通过代码实现这一点

这就是我目前所拥有的:

' 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 = "#"

将OP的答案从问题转移到:

当数据透视表有多个数据字段时,数据透视表字段列表的下拉区域中有一个名为Values的虚拟字段。在VBA中,此等效虚拟字段名为“数据”。-这将用于按列排列数据

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