VB实现自动生成统计图表
点击链接加入QQ群 522720170(免费公开课、视频应有尽有):https://jq.qq.com/?_wv=1027&k=5C08ATe
方案主要解决如何通过按钮一次完成实现
表格自动生成统计图表。
使用对象
需要统计出各种直方图、饼图、趋势图需要的人员。
功能概述
1.自动选择表格,自动化生成统计图表。
2.自动设置图表式样、格式
3.设置按钮,满足‘一键完成统计图表’
主要功能界面
图1
图2
方案优势
优势1:扩展了TD REQUIREMENT功能,提供具体需求-用例覆盖数值(覆盖率)。
优势2:便于需求管理,实时评估测试用例是否符合标准“100%覆盖产品需求”。
优势3:增加字段,符合项目需求列表特性。
方案配置
1. 原始表格
以TD数据库定期导出的‘History_bug.xls’为例
表2
2.在EXCEL调用VB,实现筛选Reopen记录的功能
效果图:
表3
附:VB编码
Sub MacroName()
'
' MacroName Macro
'
' 快捷键: Ctrl+a
'
Columns("G:G").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(""Reopen"",History_bug!$A$2:$G$2000,7,False)"
//添加筛选公式
End Sub
3通过一键‘按钮1’,自动生成报告图表。
例如
表-4
效果图:
图-3
附:VB 源码
Sub MacroName()
'
' MacroName Macro
' 要求饼图中显示内容和比率
'
' 快捷键: Ctrl+a
'
Range("A1:A13,B1:B13").Select //定义列表范围
Range("B1").Activate //调用Excel插入图表功能
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range( _
"'Sheet1'!$A$1:$A$13,'Sheet1'!$B$1:$B$13")
ActiveChart.ChartType = xlPie //调用图表中的饼图功能
ActiveChart.ApplyLayout (1) //饼图设计
ActiveChart.ChartStyle = 26 //饼图格式
ActiveChart.ClearToMatchStyle
End Sub
4.如果考虑全量考量数据,既有总量/分项数值,又具有百分比,可以使用条状图表示。
附:VB 源码
Sub Macro Name()
'
' MacroName Macro
' 条状图比率,且无设置数据标签
'
' 快捷键: Ctrl+a
'
Range("A1:C8").Select //定义列表范围
ActiveSheet.Shapes.AddChart.Select //选择插入图表
ActiveChart.SetSourceData Source:=Range("'Sheet1'!$A$1:$C$8")
ActiveChart.ChartType = xlBarStacked100 //调用图表中的条状图
ActiveChart.ApplyLayout (1)
ActiveChart.Axes(xlValue).Select //打开横轴x轴编辑框
ActiveChart.Axes(xlValue).MajorUnit = 0.1
ActiveChart.Axes(xlValue).MajorUnit = 0.02 //定义横轴的刻度
ActiveSheet.ChartObjects("图表 1").Activate
Application.Left = 82.75 //图表左右长度
Application.Top = 15 //图表上下宽度
End Sub
5.如果需要条状图分别显示内容和比率(即含有设置数据标签)。
例如:
表-5
效果图:
图-4
附:VB 源码
Sub Macro Name()
'
' MacroName Macro
'要求条状图中显示内容和比率
'
' 快捷键: Ctrl+a
'
Range("A1:C8").Select //定义表格范围例如上图
ActiveSheet.Shapes.AddChart.Select //选择插入图表
ActiveChart.SetSourceData Source:=Range("'Sheet1'!$A$1:$C$8")//
ActiveChart.ChartType = xlBarStacked100 //调用图表中的条状图
ActiveChart.ApplyLayout (1) //选择格式
ActiveChart.ChartStyle = 26 //选择式样
ActiveChart.ClearToMatchStyle
ActiveChart.Axes(xlValue).Select //打开X轴编辑框
ActiveChart.Axes(xlValue).MajorUnit = 0.2 //X轴默认坐标值
ActiveChart.Axes(xlValue).MajorUnit = 0.02 //定义X轴坐标值
ActiveSheet.ChartObjects("图表 1").Activate //选择生成的图表
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels //打开设置数据标签格式
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ApplyDataLabels //打开设置数据标签格式
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveSheet.ChartObjects("图表 1").Activate //选择生成的图表
Application.Left = 82.75 //图表左右长度
Application.Top = 15 //图表上下宽度
End Sub