excel数据分析可视化图表制作教程(如何用代码来制作Excel)

Excel工作表最终有一个目的,那就是统计各类数据,以给出一些量化指标,以此来做出一些关键性决策。

大多时候,数据显示,并不是十分直观,而图表就显示十分醒目了。所以,图表是对各类数据可视化的一个表现形式。

excel数据分析可视化图表制作教程(如何用代码来制作Excel)(1)

本节介绍一下,关于数据图形化的一些操作方法和思路。

我们利用一个真实示例来进行演示,以达到最佳的学习效果。

下图为某表的统计结果,以窗体形式显示出来,这并不是主要目的。

最终的结果是将这些数据生成图形。

excel数据分析可视化图表制作教程(如何用代码来制作Excel)(2)

如下图所示,就是生成图表的一个内容。

根据不同的统计方法,生成不同的图表,以达到一个明显的柱状趋势,当然了,也可以修改某些参数来实现图形的变化。

重点是如何实现这个生成过程。

我人利用了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

excel数据分析可视化图表制作教程(如何用代码来制作Excel)(3)

首先对工作表进行遍历,找到所有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

excel数据分析可视化图表制作教程(如何用代码来制作Excel)(4)

上图为窗体显示结果,这个思路就是由图表生成图片,然后把图片导入窗体中。

VBA可实现的功能实际上有很多,只是需要投入一些精力来进行学习和实践。

欢迎关注、收藏

---END---

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页