Excel表格网

自动更新部分数据透视表的VBA代码?

196 2023-12-27 00:43 admin   手机版

Sub 透视()

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Sheet1!R1C1:R1048576C1", Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:="Sheet2!R1C14", TableName:="数据透视表1", DefaultVersion:=xlPivotTableVersion15

'建立一处缓存,保存要处理成数据透视表的数据信息,括号内输入获取数据的所需参数:SourceType:=数据源类型,一般是xlDatabase(基于xl的数据库类型),SourceData:=所要选取的数据区域,Version:=创建数据透视表的表类型,

'CreatePivotTable用这块缓存数据来建立数据透视表,括号内输入创建数据透视表所需参数:TableDestination:=输出表的位置,TableName:=创建数据透视表的名称(表名不能重复),DefaultVersion:=数据透视表版本号,必须与之前创建缓存时版本号相同

'在选择数据源的时候,由于数据行列数通常不确定(也会出现源数据字段的数量有变化的情况,可用变量strSourceData

Sheets("Sheet2").Activate '后台打开该输出表

Sheets("Sheet2").PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1").PivotFields("用户编号"), "计数:用户编号", xlCount

'Sheets("输出表").PivotTables("数据透视表表名").AddDataField ActiveSheet.PivotTables("数据透视表表名").PivotFields("统计字段"), "求和:统计字段", xlSum

'Sheets("输出表").PivotTables("数据透视表表名").PivotFields是当前工作表中数据透视表"数据透视表表名"里面包含全部字段的集合,是一个数组,可用for each循环

With Sheets("Sheet2").PivotTables("数据透视表1").PivotFields("用户编号") 'With Sheets("输出表").PivotTables("数据透视表表名").PivotFields("行字段1")

.Orientation = xlRowField '表示该统计字段在数据透视表中的位置为行字段(列字段是xlColumnField)

.Position = 1 '表示该行字段1所在行字段的位置为第1个位置

End With

' Sheets("输出表").PivotTables("数据透视表表名").RowAxisLayout xlTabularRow '使行字段能在同一行显示

' With Sheets("输出表").PivotTables("数据透视表表名").PivotFields("列字段1")

' .Orientation = xlColumnField '表示该列字段在数据透视表中的位置为列字段(行字段是xlRowField)

' .Position = 1 '表示该列字段1所在列字段的位置为第1个位置

' End With

End Sub

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片