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


- 相关评论
- 我要评论
-