通过单击该系列从图表中获取系列名称

时间:2015-11-27 12:31:38

标签: excel vba excel-vba charts

我想通过点击它从特定图表中获取时间序列名称。我有这样的事情:

Sub CallSerie()

CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name

MsgBox CallingShapeName

End Sub

但这会抛出图表名称,而不是系列名称。

1 个答案:

答案 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例程),然后单击图表系列。