Excel图表制作,一直是个难点,由于其类型多,格式也复杂,涉及到的图形也比较多,所以在使用过程当中,会发现有点不知所措。
Chart对象
本节简单介绍一下,使用VBA代码在数据表中的系列值如何设置和返回。

首先还是要获取一个Chart对象,上节我们介绍过,Chart对象就是代表一个图表。
一个图表里面包含了很多图片、文本,下面就对这些图片、文本进行设置做一个梳理。
如下图所示:提取出图表中的年龄和姓名生成一表。

代码
可以重点看一下代码,对照代码进行理解:
Option Explicit
Private Sub GetSeries()
Dim xChart As Object
Set xChart = ThisWorkbook.Charts(1) '返回Chart图表工作表
Dim i As Integer, n As Integer
n = xChart.SeriesCollection.Count '返回系列总数
For i = 1 To n
Range("B6").Offset(i, 0) = xChart.SeriesCollection(i).Name
Next i
Dim xChartObject As Object, xSeries As Object
n = xChart.SeriesCollection.Count
If n >= 1 Then
For i = 1 To n
Set xSeries = xChart.SeriesCollection(i)
Range("B6").Offset(i - 1, 1).Value = xSeries.Name
Next i
End If
xSeries.Select
Dim x As Variant, xArr()
xArr = xSeries.XValues '返回x轴值数组
i = 1
For Each x In xArr
Range("B6").Offset(i, 0).Value = xArr(i)
i = i + 1
Next x
xArr = xSeries.Values '返回系列值数组
i = 1
For Each x In xArr
Range("B6").Offset(i, 1).Value = xArr(i)
i = i + 1
Next x
End Sub

关键代码:
Set xChart = ThisWorkbook.Charts(1) '返回Chart图表工作表
Set xSeries = xChart.SeriesCollection(1)'返回第一个系列对象
xArr = xSeries.XValues '返回x轴值数组
xArr = xSeries.Values'返回系列值数组
xSeries.Values = Array(222, 221, 1111)'设置系列值
xSeries.XValues = Array("姓名一", "姓名二", "姓名三") '设置x轴系列值
Series对象方法和属性

很显然,用到了不止一个对象,有Chart、Series和SeriesCollection,三个对象。
这三个对象分别有许多方法和属性,而这里用到了Series的xValues和Values两个。
其它方法属性,下次再做详细介绍。
关键是如何获取对象,并对对象的哪些属性进行修改,这样再编程序的时候就可以方便地解决我们的需求了。
欢迎关注、收藏
---END---