![992c8f04732b066f950a2384a554b0fc.png](https://img-blog.csdnimg.cn/img_convert/992c8f04732b066f950a2384a554b0fc.png)
大家好,今日继续上一讲的内容,也是VBA代码方案的第三十五讲,继续讲使用VBA代码自动生成图表的下半部分。在上一讲中我们讲了基本的方法,今日就利用这些方法来完成我们的任务,为此,我写了下面的35行代码:
Sub MyChartAdd()
2 Dim myRange As Range
3 Dim myChart As ChartObject
4 Dim MR As Integer
5 Sheets("Sheet1").Select
6 MR = Range("A1048576").End(xlUp).Row
7 Set myRange = Sheets("Sheet1").Range("A" & 1 & ":F" & MR)
8 Set myChart = Sheets("Sheet1").ChartObjects.Add(120, 40, 400, 250)
9 myChart.Chart.ChartType = xlColumnClustered
10 myChart.Chart.SetSourceData Source:=myRange, PlotBy:=xlColumns
11 myChart.Chart.ApplyDataLabels ShowValue:=True
12 myChart.Chart.HasTitle = True
13 myChart.Chart.ChartTitle.Text = "我的图表"
14 With myChart.Chart.ChartTitle.Font
15 .Size = 20
16 .ColorIndex = 3
17 .Name = "华文新魏"
18 End With
19 With myChart.Chart.ChartArea.Interior
20 .ColorIndex = 8
21 .PatternColorIndex = 1
22 .Pattern = xlSolid
23 End With
24 With myChart.Chart.PlotArea.Interior
25 .ColorIndex = 35
26 .PatternColorIndex = 1
27 .Pattern = xlSolid
28 End With
29 With myChart.Chart.SeriesCollection(2).DataLabels.Font
30 .Size = 10
31 .ColorIndex = 5
32 End With
33 Set myRange = Nothing
34 Set myChart = Nothing
35 End Sub
代码解析:
MyChartAdd过程在工作表中自动生成图表,图表类型为簇状柱形图。
a) 第6行代码取得数据范围的最关键的数据.
b) 第7行代码指定图表的数据源。
c) 第8行代码使用Add方法创建一个新图表,
d) 第9行代码指定新创建图表的图表类型,应用于Chart对象的ChartType属性返回或设置图表的类型,可以为XlChartType常量之一,本例中设置为xlColumnClustered即图表类型为簇状柱形图。
e) 第10行代码指定图表的数据源和绘图方式,
f) 第11行代码使用ApplyDataLabels方法使图表显示数据标签和数据点的值,
g) 第12到13行代码设置新创建的图表有可见的标题并设置图表标题的文字。应用于Chart对象的HasTitle属性,如果坐标轴或图表有可见标题,则该值为True,而ChartTitle属性返回一个ChartTitle对象,代表指定图表的标题。
h) 第14行到第18行代码设置图表标题文字的格式。
i) 第19行到第23行代码设置图表区的颜色。
j) 第24行到第28行代码设置绘图区的颜色。
k) 第31行代码删除图表上第一个数据系列中的数据标签。
l) 第29行到第32行代码设置图表上第二个数据系列中的数据标签的字体格式。
代码窗口:
![cd7367e8c973eead91f4d75a442bcb7f.png](https://img-blog.csdnimg.cn/img_convert/cd7367e8c973eead91f4d75a442bcb7f.png)
数据窗口:
![077fddaafc29bc8936b034a349fe05de.png](https://img-blog.csdnimg.cn/img_convert/077fddaafc29bc8936b034a349fe05de.png)
运行ChartAdd过程,在工作表中创建簇状柱形图,如图所示:
![989ce44a0b5e2a564cb2c725cf7d708f.png](https://img-blog.csdnimg.cn/img_convert/989ce44a0b5e2a564cb2c725cf7d708f.png)
今日内容回向:
1 对上面的35行代码是否理解呢?
这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。
欢迎大家到我的自媒体平台沟通交流:公众号“NZ_9668”、社群“VBA学习交流群”、头条号“VBA专家”,百家号“VBA与GO语言”。
工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。