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


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