如何用vba添加、删除数据透视表中的字段?

当用vba操作数据透视表时,经常需要操作数据透视表的字段。

一般有以下几种字段的操作:

1.将字段移入报表区域的行标签、列标签、报表筛选、值区域等。

2.将字段移出报表区域中

3.设置值字段的汇总方式、值显示方式等。

所有这些操作都可以通过操作PivotField对象。

接下来分别介绍

一、往数据透视表报表区域中添加字段

代码如下:

Sub QQ1722187970()
    Dim opt As PivotTable
    Dim owk As Worksheet
    Set owk = Excel.ActiveSheet
    Set opt = owk.PivotTables(1)
    With opt
        Set opF = .PivotFields("单位名称")
        With opF
            '移动到行区域
            .Orientation = xlRowField
        End With
        Set opF = .PivotFields("年份")
        With opF
            '移动到筛选区域
            .Orientation = xlColumnField
        End With
        Set opF = .PivotFields("从业人数")
            With opF
            '移动到数值区域
            .Orientation = xlDataField
        End With
    End With
End Sub

二、数据透视表报表区域中删除字段

Sub QQ1722187970()
    Dim opt As PivotTable
    Dim owk As Worksheet
    Set owk = Excel.ActiveSheet
    Set opt = owk.PivotTables(1)
    Dim opf As PivotField
    With opt
        Set opf = .PivotFields("单位名称")
        With opf
            .Orientation = xlHidden
        End With
        Set opf = .PivotFields("年份")
        With opf
            .Orientation = xlHidden
        End With
        '如果是数值字段,要修改字段的名称为“求和项:从业人数”
        Set opf = .PivotFields("求和项:从业人数")
            With opf
           .Orientation = xlHidden
        End With
    End With
End Sub

这里要特别注意的是,如果一个字段拖入到数值区域,那么下次要移除这个字段时,需要制定的字段名称要变成“求和项:从业人数”,或者其它的计算方式+原字段名称,才能移除该字段。

       

仅有1条评论 发表评论

  1. Александр /

    1993 , Excel Visual Basic (VBA), , Visual Basic, Excel. VBA Excel . VBA-, . VBA . ( ) DLL ActiveX ; – . Excel 5.0 9.0 , , 10 Microsoft .

发表评论