VBA – 在图表A的系列1被选中时,使图表B出现

我有一个14系列的图表。 同样,我有14个与这些系列中的每一个相关的图表。 我正在尝试创build一个可以在select特定系列时调用的macros。 当select该系列时,macros使相应的图表出现,给用户更详细的数据。

这是我到目前为止(与我一起,我是一个软弱的程序员)。 请让我知道,如果我在他的正确轨道,如果不是请给我一些方向。 此代码目前给我一个错误消息“对象不支持此属性或方法”。

谢谢!

Sub Macro1() Dim Series6 As Object Set Series6 = ActiveChart.SeriesCollection(1).Points(6) If Series6.Select Then Sheets("Sheet1").ChartObjects("Chart 2").Visible = True End If End Sub 

您可以创build图表事件来处理这种types的事情

假设:

  • 图表在Sheet1
  • 主图表被命名为Chart 1
  • 详细图表以系列号+1命名(例如Series 1涉及Chart 2

要设置图表事件,请按照以下步骤操作

  1. 创build一个名为EventClassModule的类模块
  2. 将代码添加到此模块

     Option Explicit Public WithEvents myChartClass As Chart Private Sub myChartClass_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long) Dim ChartName As String Dim i As Long If ElementID = 3 And Arg1 = 1 Then ' 3 indicates a Series ChartName = "Chart " & Arg2 + 1 ' Arg1 is the series number With Worksheets("Sheet1") ' Hide all sub charts For i = 2 To .ChartObjects.Count .ChartObjects(i).Visible = False Next ' Show the required chart .ChartObjects(ChartName).Visible = True End With End If End Sub 
  3. 初始化类模块(最好作为工作簿打开事件完成:将此代码放入ThisWorkbook模块中)

     Option Explicit Dim myClassModule As New EventClassModule Private Sub Workbook_Open() Set myClassModule.myChartClass = _ Sheet1.ChartObjects("Chart 1").Chart End Sub 

现在,当selectChart 1一个系列时,将显示相关的详细信息图表,其他图标被隐藏

有用的链接
MSDN图表对象事件
MSDN图表select事件