Excel 工作表最终有一个目的,那就是统计各类数据,以给出一些量化指标,以此来做出一些关键性决策 。
大多时候,数据显示,并不是十分直观,而图表就显示十分醒目了 。所以,图表是对各类数据可视化的一个表现形式 。
本节介绍一下,关于数据图形化的一些操作方法和思路 。
我们利用一个真实示例来进行演示,以达到最佳的学习效果 。
下图为某表的统计结果,以窗体形式显示出来,这并不是主要目的 。
最终的结果是将这些数据生成图形 。
如下图所示,就是生成图表的一个内容 。
根据不同的统计方法,生成不同的图表,以达到一个明显的柱状趋势,当然了,也可以修改某些参数来实现图形的变化 。
重点是如何实现这个生成过程 。
我人利用了 VBA 代码来进行实现 。
其实现过程看如下代码:
For Each pObj In P.ShapesIf pObj.Type = 3 ThenSelect Case pObj.NameCase pArr(0)ir = 14pObj.Chart.SetSourceData Source:=S.Range("B2:B14")pObj.Chart.ChartTitle.Text = S.Range("A2").ValueCase pArr(1)ir = S.Range("E65535").End(xlUp).RowIf ir <= 2 Then ir = 3pObj.Chart.SetSourceData Source:=S.Range("F2:F" & ir) '设置数据区域With pObj.Chart.HasTitle = True.ChartTitle.Text = S.Range("E2").ValuepObj.Chart.Axes(xlValue).CategoryNames = S.Range("E3:E" & ir) '设置坐标轴名称End WithCase pArr(2)ir = S.Range("M65535").End(xlUp).RowIf ir <= 2 Then ir = 3pObj.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 WithCase pArr(3)ir = S.Range("I65535").End(xlUp).RowIf ir <= 2 Then ir = 3pObj.Chart.SetSourceData Source:=S.Range("J2:J" & ir)With pObj.Chart.HasTitle = True.ChartTitle.Text = S.Range("I2").ValuepObj.Chart.Axes(xlValue).CategoryNames = S.Range("I3:I" & ir)End WithEnd Select'导出图片pObj.Chart.Export Filename:=ThisWorkbook.Path & "\" & pObj.Name & ".jpg", filtername:="jpg"End IfNext 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 pArrSet pObj = Me.Controls.Add("Forms.Image.1", xP)'新建图片控件With pObj.Width = 450.Height = 220If pi < 2 Then.Left = pi * (.Width + 20) + 50.Top = Me.Label1.Top + Me.Label1.Height + 10Else.Left = (pi - 2) * (.Width + 20) + 50.Top = Me.Label1.Top + Me.Label1.Height + .Height + 20End If‘设置图片.Picture = LoadPicture(ThisWorkbook.Path & "\" & xP & ".jpg").PictureSizeMode = 1End Withpi = pi + 1Next xP
上图为窗体显示结果,这个思路就是由图表生成图片,然后把图片导入窗体中 。
【excel制作统计图的方法 小学生统计图表怎么做】 VBA 可实现的功能实际上有很多,只是需要投入一些精力来进行学习和实践 。
推荐阅读
- excel如何一个单元格手动换行 表格内换行快捷键ctrl加什么
- 内附教程一劳永逸 excel计算公式怎么自动计算
- 这5种快捷复制方式让你飞速完成PPT制作 复制粘贴是什么键
- excel合并单元格的最快方法 合并居中的快捷键
- u盘安装原版win10系统教程 如何制作win10系统u盘安装系统
- 多个excel表格合并一个表格教程 两个表格怎么合并成一个表格
- 10个赞不绝口的宝藏App 表情图制作app软件
- Excel设置行高和列宽教程 excel表格怎么调整行高和列宽
- excel筛选功能使用技巧 excel中取消工作表的自动筛选后
- Excel教你四招如何快速删除重复数据 excel如何删除重复内容