小强测试技术与人生杂谈

VB实现自动生成统计图表

2018-04-30  本文已影响12人  测试帮日记

点击链接加入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

上一篇下一篇

猜你喜欢

热点阅读