大家好,今日继续上一讲的内容,也是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行代码设置图表上第二个数据系列中的数据标签的字体格式。
代码窗口:
数据窗口:
运行ChartAdd过程,在工作表中创建簇状柱形图,如图所示:
今日内容回向:
1 对上面的35行代码是否理解呢?
联系客服