纲举目张
说明运行效果代码code使用说明说明
因为在日常应用中很少用到图表,最近帮同事写一个自动生成报告的功能,需要自动生成很多图表以便添加到他的报告中,看来需要写一写使用代码生成图表的文章,一方面自己留存,一方面能帮助到需要它的人。
运行效果
代码code
Private Sub CommandButton1_Click()'定义数据区Dim strRange As StringstrRange = "$B$2:$C$9"'查找所有本Sheet中的所有图表,然后删除Dim itSheet As WorksheetSet itSheet = ActiveSheetFor i = 1 To itSheet.Shapes.CountIf itSheet.Shapes.Item(i).Type = msoChart ThenitSheet.Shapes.Item(i).DeleteEnd IfNext'插入图表Dim itShapes As ShapeSet itShapes = itSheet.Shapes.AddChart2(332, xlLineMarkers) '这里使用的折线图Dim itChart As ChartSet itChart = itShapes.ChartitChart.SetSourceData Source:=Range(strRange) '图表的数据源itChart.PlotBy = xlColumns 'X轴由列产生itChart.SetElement (msoElementLegendRight) '在右侧添加图例'将图表左上角放置在E4单元格的左上角itShapes.Left = Cells(4, 5).LeftitShapes.Top = Cells(4, 5).TopEnd Sub
使用说明
1、为了方便演示,我在Sheet中添加了一个按钮,上述代码中将IDE自动生成的按钮点击事件代码部分也放进来了,实际应用时请自行调整。
2、在“定义数据区”部分,我将数据区手动写进了代码中,可以在实际应用中增加自动适应数据区的代码。
3、有的时候只有实际应用后才知道要先查找本Sheet中原有的所有图表并删除,否则就重复太多,消耗系统资源。
4、本案例为大家演示折线图的生成,本想着为大家总结各个图表的对应的常量文章,但是Excel的图表太多了,而且只看列表也不直观,建议先手动尝试哪种图表适合自己,然后再录制宏。
5、请点击下载本文附件
如有意见建议或使用中出现Bug请留言,谢谢!
如果觉得《【Excel VBA】使用代码生成图表——Chart和Shape的使用方法》对你有帮助,请点赞、收藏,并留下你的观点哦!