我想通过点击它从特定图表中获取时间序列名称。我有这样的事情:
Sub CallSerie()
CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name
MsgBox CallingShapeName
End Sub
但这会抛出图表名称,而不是系列名称。
答案 0 :(得分:1)
您不想将宏指定给图表 - 最好使用其事件。以下代码假设您在工作表中嵌入了一个图表,并且代码需要进入该工作表的代码模块:
Private WithEvents cht As Excel.Chart
Private Sub cht_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim IDNum As Long
Dim a As Long
Dim b As Long
cht.GetChartElement x, y, IDNum, a, b
If IDNum = xlSeries Then MsgBox cht.SeriesCollection(a).Name
End Sub
Private Sub Worksheet_Activate()
HookChart
End Sub
Public Sub HookChart()
Set cht = Me.ChartObjects(1).Chart
End Sub
然后只需激活不同的工作表并切换回图表工作表(或只运行HookChart
例程),然后单击图表系列。