【问题标题】:PivotTableWizard - Name of Data Fields as Column HeadersPivotTableWizard - 作为列标题的数据字段名称
【发布时间】:2014-12-20 05:09:06
【问题描述】:

我正在使用 VBA PivotTableWizard 方法从 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 = "#"

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    从问题中转移OP的答案:

    当数据透视表将包含多个数据字段时,在数据透视表字段列表的拖放区中有一个名为 Values 的虚拟字段。在 VBA 中,这个等效的虚拟字段被命名为“数据”。 - 这将用于按列排列数据。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      相关资源
      最近更新 更多