Q:如下图1所示,我根据单元格区域A1:B10中的数据绘制了一个折线图,我现在想用VBA得到该折线图的第5个数据点的分类名(从数据表中可以得出其分类名为“桔子”),如何编写程序实现我的需求?
Q:如下图1所示,我根据单元格区域A1:B10中的数据绘制了一个折线图,我现在想用VBA得到该折线图的第5个数据点的分类名(从数据表中可以得出其分类名为“桔子”),如何编写程序实现我的需求?
图1
A:可以使用下面的自定义函数来获得分类轴的类别名:
‘获取指定图表中指定系列上某数据点类别名
‘参数cht:代表图表
‘参数lSeriesNum:代表图表中的系列编号
‘参数lPointNum:代表系列中的数据点编号
Function GetCategoryLabel(cht As Chart, _
lSeriesNum As Long, _
lPointNum As Long) As String
Dim srsCht As Series
Dim vCategory As Variant
‘获取图表系列
Set srsCht= cht.SeriesCollection(lSeriesNum)
‘类别数据
vCategory = srsCht.XValues
‘返回指定数据点的类别
GetCategoryLabel = vCategory(lPointNum)
End Function
使用下面的代码调用GetCategoryLabel函数,获取图表中指定系列上某点的类别名。
Sub test()
Dim str As String
Dim cht As Chart
Dim lSeries As Long
Dim lPoint As Long
‘设置图表变量
Set cht = ActiveSheet.ChartObjects(1).Chart
‘系列1
lSeries = 1
‘第5个数据点
lPoint = 5
‘获取类别名
str = GetCategoryLabel(cht, lSeries, lPoint)
‘显示结果
MsgBox”系列”& lSeries & _
“中第”& lPoint & _
“点的类别名为:”& vbCrLf & str
End Sub
运行上述代码,Excel显示当前工作表中第一个图表上系列1的第5个数据点的类别名,如下图2所示。