'创建一个符合格式的透视表,
1.行字段是表格形式标签,重复标签,标签融合居中
2.列镶边风格
3.取消行总计
4.排序
Sub CreatePivotTable()
Dim PvtCache As
PivotCache
Dim PvtTbl As
PivotTable
Dim sht As
Worksheet
Dim shtPivot As
Worksheet
'设置数据源所在的工作表
Set sht =
ThisWorkbook.Worksheets("站点汇总数据")
Set shtPivot =
ThisWorkbook.Worksheets("市区统计")
'创建数据透视表缓存
Set PvtCache =
ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase,
SourceData:=sht.Cells(1).CurrentRegion)
'基于缓存创建数据透视表
Set PvtTbl =
PvtCache.CreatePivotTable(TableDestination:=shtPivot.Range("A1"),
TableName:="PivotTable1")
PvtTbl.MergeLabels =
True '标签融合居中,对于列标签比较有意义,防止列看错位
ActiveSheet.PivotTables("PivotTable1").RowGrand =
False '取消行总计
'以下是添加字段到透视表各区域的示例,你根据实际数据和需求调整字段名称
PvtTbl.PivotFields("供服中心").Orientation =
xlRowField '将"字段1"添加到行区域
PvtTbl.PivotFields("抄表员").Orientation =
xlRowField '将"字段1"添加到行区域
PvtTbl.PivotFields("抄表方式").Orientation =
xlColumnField
'将"字段2"添加到列区域
PvtTbl.AddDataField
PvtTbl.PivotFields("电量合计"), "电量合计", xlSum
'将"求和项:字段3"添加到数据区域,这里假设对字段3进行求和,若要其他计算类型可修改函数
PvtTbl.AddDataField
PvtTbl.PivotFields("电量合计"), "电量条数", xlCount
'将"求和项:字段3"添加到数据区域,这里假设对字段3进行求和,若要其他计算类型可修改函数
'
ActiveSheet.PivotTables("PivotTable1").AddDataField
ActiveSheet.PivotTables("PivotTable1").PivotFields("电量合计"),
"求和项:电量合计", xlSum
' With
ActiveSheet.PivotTables("PivotTable1").PivotFields("求和项:电量合计")
'
.Caption = "计数项:电量合计"
'
.Function = xlCount
' End With
PvtTbl.TableStyle2 =
"TableStyleMedium2" '设置一个透视表风格,配色
End Sub
Sub 透视表美化()
Set PvtTbl = ActiveSheet.PivotTables(1)
For Each pp In PvtTbl.PivotFields
If pp.Orientation = xlRowField Then
'如果字段方向是行字段,则设置字段布局为表格形式
pp.LayoutForm = xlTabular '表格形式而不是大纲
pp.RepeatLabels = True '重复标签
End If
Next
ActiveSheet.PivotTables("PivotTable1").ShowTableStyleColumnStripes
= True '镶边列
'
PvtTbl.PivotFields("核算员").LayoutForm = xlTabular
'用表格形式,xlOutline是用大纲的形式
'
PvtTbl.PivotFields("供服中心").LayoutForm = xlTabular
'用表格形式,xlOutline是用大纲的形式
'PvtTbl.PivotFields("核算员").Subtotals = Array(False, False,
False, False, False, False, False, False, False, False, False,
False)
End Sub
加载中,请稍候......