从图表组件中单击popup图表

这是一个可能性的问题,所以请不要期望任何代码,尽pipe我已经尽了最大的努力来想象它。 示例图正如您在这里可以看到不同的地区,现在我的问题是,当点击“亚洲”列/栏时,是否可以popup一个图表,并显示所有亚洲国家的浓度。

对的,这是可能的。 捕获这些“点击一系列数据点”事件的基本实现如下:

类模块MouseDownChart代码:

 Option Explicit Private WithEvents p_Chart As Chart Private Sub Class_Terminate() Set p_Chart = Nothing End Sub Public Sub setChart(ByRef Chart As Chart) Set p_Chart = Chart End Sub Private Sub p_Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long) 'Capture the event Dim sertmp As Series Dim IDNum As Long Dim a As Long Dim B As Long p_Chart.GetChartElement x, y, IDNum, a, B If IDNum = 3 Then 'Clicked on a point in a chart series MsgBox "a is the clicked series: " & a MsgBox "B is the clicked datapoint: " & B 'Write code to pop-up the right stuff here. End If End Sub 

而在一个常规模块中:

 Option Explicit Public mdCht As MouseDownChart Sub Init() Dim ws As Worksheet Dim co As ChartObject Dim ch As Chart Set ws = Worksheets("Sheet1") Set co = Worksheets("Sheet1").ChartObjects(1) Set ch = co.Chart Set mdCht = New MouseDownChart mdCht.setChart ch End Sub 

请记住,一个WorksheetChart可以被引用为“图表”,但是任何embedded到工作表中的图表,如您的示例图片,将始终包含在ChartObject