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所示。