数据透视表数据字段在vb.net的Column Field下合并

时间:2016-01-07 09:25:44

标签: vb.net excel

我正在从各种表中创建第1页的数据库,这个数据源现在是我在vb.net上生成的选项卡2上的数据透视表的源。 我有2个数据字段我想添加。

Dim pivotField As Excel.PivotField
'Row field 1
pivotField = pivotTbl.PivotFields("Grade")
    With pivotField
        .Orientation = Excel.XlPivotFieldOrientation.xlRowField
        .Name = " Grade"
    End With
'Row field 2
pivotField = pivotTbl.PivotFields("Financed")
    With pivotField
        .Orientation = Excel.XlPivotFieldOrientation.xlRowField
        .Name = " Financed"
    End With
'DATA FIELD 1 and 2
pivotField = pivotTbl.PivotFields("OnHand")
    With pivotField
        .Orientation = Excel.XlPivotFieldOrientation.xlDataField
        .Function = Excel.XlConsolidationFunction.xlSum
        .NumberFormat = "### ### ### ##0.000"
        .Name = " Stock On Hand"
        .Position = 1
    End With

    pivotField = pivotTbl.PivotFields("StockValue")
    With pivotField
        .Orientation = Excel.XlPivotFieldOrientation.xlDataField
        .Function = Excel.XlConsolidationFunction.xlSum
        .NumberFormat = "### ### ### ##0.000"
        .Name = " Stock Value"
        .Position = 2
    End With

正在创建数据字段,但是,当我在创建工作表后查看工作表时,它们都列在一个COLUMN下。

如果我单击数据透视表,并将这些字段移出VALUES然后返回值,它会正确地拆分数据透视表,并在上面添加一个名为DATA的行标题,并在其自己的列下有2个数据字段,正如我希望的那样。

从上面的代码创建的PIVOT

Pivot Before

从代码

创建的PIVOT结构

Pivot Before Structure

手动移动" Sum Of"从行到列的值,如下所示:

更改后

After Image

这是编辑的结构:

After Structure

我想知道如何在代码中将VALUES从行移动到列?特别是因为我从来没有在ROWS中指定它,似乎是我需要改变的一些默认设置,我已经看了一遍,似乎无法找到它。

1 个答案:

答案 0 :(得分:3)

只需按如下方式访问数据透视表的“DATA”部分,然后将其设置为数据字段

   pivotField = pivotTbl.PivotFields("Data")
   pivotField.Orientation = Excel.XlPivotFieldOrientation.xlColumnField

你是惠康