今日学习目标

  • 掌握数据透视表生成技术
  • 实现图表自动生成
  • 完成报表美化格式化

知识点

1. 数据透视表自动化

  • PivotCache和PivotTable对象
  • 设置行、列、数值字段
  • 分组和筛选设置

2. 图表生成技术

  • ChartObjects集合操作
  • 图表类型选择
  • 数据系列绑定

3. 报表美化

  • 条件格式设置
  • 样式模板应用
  • 页眉页脚设置

今日代码

vba
' 自动生成数据透视表 Sub CreatePivotTable() Dim wsSource As Worksheet Dim wsDest As Worksheet Dim pc As PivotCache Dim pt As PivotTable Set wsSource = Worksheets("数据源") Set wsDest = Worksheets.Add ' 创建透视表缓存 Set pc = ThisWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=wsSource.Range("A1").CurrentRegion) ' 创建透视表 Set pt = pc.CreatePivotTable( _ TableDestination:=wsDest.Range("A3"), _ TableName:="销售报表") ' 设置透视表字段 With pt .PivotFields("区域").Orientation = xlRowField .PivotFields("产品").Orientation = xlColumnField .PivotFields("销售额").Orientation = xlDataField .PivotFields("日期").Orientation = xlPageField End With ' 生成图表 Call CreateChart(wsDest) End Sub ' 自动生成图表 Sub CreateChart(ws As Worksheet) Dim chartObj As ChartObject Set chartObj = ws.ChartObjects.Add( _ Left:=ws.Range("H2").Left, _ Width:=400, _ Top:=ws.Range("H2").Top, _ Height:=300) With chartObj.Chart .SetSourceData Source:=ws.Range("A1").CurrentRegion .ChartType = xlColumnClustered .HasTitle = True .ChartTitle.Text = "销售数据透视图" End With End Sub

练习题

  1. 创建按月份汇总的销售报表
  2. 生成柱状图和折线图组合
  3. 设置报表条件格式突出显示最大值

参考解答

1. 将日期字段分组设置为月,使用销售总额作为数值字段。 2. 创建两个ChartObject,分别设置xlColumnClustered和xlLine类型。 3. 使用Worksheet.Change事件触发条件格式,为Top10设置特殊格式。


由在线工具箱(www.vba.net)整理制作