excel数据分析可视化图表制作教程(如何用代码来制作Excel)
Excel工作表最终有一个目的,那就是统计各类数据,以给出一些量化指标,以此来做出一些关键性决策。
大多时候,数据显示,并不是十分直观,而图表就显示十分醒目了。所以,图表是对各类数据可视化的一个表现形式。
本节介绍一下,关于数据图形化的一些操作方法和思路。
我们利用一个真实示例来进行演示,以达到最佳的学习效果。
下图为某表的统计结果,以窗体形式显示出来,这并不是主要目的。
最终的结果是将这些数据生成图形。
如下图所示,就是生成图表的一个内容。
根据不同的统计方法,生成不同的图表,以达到一个明显的柱状趋势,当然了,也可以修改某些参数来实现图形的变化。
重点是如何实现这个生成过程。
我人利用了VBA代码来进行实现。
其实现过程看如下代码:
For Each pObj In P.Shapes
If pObj.Type = 3 Then
Select Case pObj.Name
Case pArr(0)
ir = 14
pObj.Chart.SetSourceData Source:=S.Range("B2:B14")
pObj.Chart.ChartTitle.Text = S.Range("A2").Value
Case pArr(1)
ir = S.Range("E65535").End(xlUp).Row
If ir <= 2 Then ir = 3
pObj.Chart.SetSourceData Source:=S.Range("F2:F" & ir) '设置数据区域
With pObj.Chart
.HasTitle = True
.ChartTitle.Text = S.Range("E2").Value
pObj.Chart.Axes(xlValue).CategoryNames = S.Range("E3:E" & ir) '设置坐标轴名称
End With
Case pArr(2)
ir = S.Range("M65535").End(xlUp).Row
If ir <= 2 Then ir = 3
pObj.Chart.SetSourceData Source:=S.Range("N2:N" & ir)
With pObj.Chart
.HasTitle = True
.ChartTitle.Text = S.Range("M2").Value
' pObj.Chart.Axes(xlSeriesAxis).CategoryNames = S.Range("M3:M" & ir)
End With
Case pArr(3)
ir = S.Range("I65535").End(xlUp).Row
If ir <= 2 Then ir = 3
pObj.Chart.SetSourceData Source:=S.Range("J2:J" & ir)
With pObj.Chart
.HasTitle = True
.ChartTitle.Text = S.Range("I2").Value
pObj.Chart.Axes(xlValue).CategoryNames = S.Range("I3:I" & ir)
End With
End Select
'导出图片
pObj.Chart.Export Filename:=ThisWorkbook.Path & "\" & pObj.Name & ".jpg", filtername:="jpg"
End If
Next pObj
首先对工作表进行遍历,找到所有Shape对象,筛选出图表对象,然后再对图表进行一些设置。
本示例中的图表要手动制作完成,具体方法省略。
重点代码:
pObj.Chart.SetSourceData Source:=S.Range("F2:F" & ir) '设置数据区域
.ChartTitle.Text = S.Range("M2").Value'设置图表标题名称
pObj.Chart.Axes(xlSeriesAxis).CategoryNames = S.Range("M3:M" & ir)'设置X坐标轴名称
'导出图片
pObj.Chart.Export Filename:=ThisWorkbook.Path & "\" & pObj.Name & ".jpg" _
, filtername:="jpg"
上述代码实现对图表进行设置之后,然后导出为一个JPG文件,也就是导出一张图片,再将图片引入窗体Image控件中。
For Each xP In pArr
Set pObj = Me.Controls.Add("Forms.Image.1", xP)'新建图片控件
With pObj
.Width = 450
.Height = 220
If pi < 2 Then
.Left = pi * (.Width 20) 50
.Top = Me.Label1.Top Me.Label1.Height 10
Else
.Left = (pi - 2) * (.Width 20) 50
.Top = Me.Label1.Top Me.Label1.Height .Height 20
End If
‘设置图片
.Picture = LoadPicture(ThisWorkbook.Path & "\" & xP & ".jpg")
.PictureSizeMode = 1
End With
pi = pi 1
Next xP
上图为窗体显示结果,这个思路就是由图表生成图片,然后把图片导入窗体中。
VBA可实现的功能实际上有很多,只是需要投入一些精力来进行学习和实践。
欢迎关注、收藏
---END---
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com