Excel VBA-选择图表A的系列1时,使图表B显示
我有一张14系列的图表。同样地,我有14个图表与这些系列中的每一个相关。我正在尝试创建一个宏,在选择特定系列时可以调用该宏。选择序列后,宏将显示相应的图表,从而为用户提供更详细的数据 这就是我到目前为止所想到的(请相信我,我是一个软弱的程序员)。请让我知道我是否在正确的轨道上,如果不是,请给我一些方向。此代码当前给我一条错误消息“对象不支持此属性或方法” 谢谢Excel VBA-选择图表A的系列1时,使图表B显示,excel,vba,charts,Excel,Vba,Charts,我有一张14系列的图表。同样地,我有14个图表与这些系列中的每一个相关。我正在尝试创建一个宏,在选择特定系列时可以调用该宏。选择序列后,宏将显示相应的图表,从而为用户提供更详细的数据 这就是我到目前为止所想到的(请相信我,我是一个软弱的程序员)。请让我知道我是否在正确的轨道上,如果不是,请给我一些方向。此代码当前给我一条错误消息“对象不支持此属性或方法” 谢谢 Sub Macro1() Dim Series6 As Object Set Series6 = ActiveChart.Series
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
您可以创建图表事件来处理此类事件 假设:
- 图表见
表1
- 主图表命名为
图表1
- 详细图表以系列编号+1命名(例如
与系列1
相关)图表2
EventClassModule
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
此工作簿
模块)
是否将所有图表放在一张纸上?如果您尝试这样做会怎么样:
工作表(“质量报告”).Chartobjects(“图表7”).Visible=true
但在括号中插入正确的名称。是的,它们都在同一页上。但是,我仍然得到相同的错误。你是否在引号内添加了适当的图表名称?是的,但它不起作用。我可以用上面代码的一部分取消隐藏图表,但当选中图表上的特定数据点时,我无法确定如何执行此操作。我想知道这是否可能?我已经编辑了我发布的原始代码。我现在正在一个测试文件中工作。以上仍然会产生一个错误,但我相信我离做我想做的事情更近了。如果您有任何意见,请插进来。非常感谢!这似乎正是我试图实现的。我还有一个问题……如果我只想拥有一个系列,但我想为各个数据点提供相同的功能(单击时会显示相应的图表),我将如何实现这一点。我知道ElementID=3指的是系列,Arg2指的是数据点,但我不确定如何将其转换为可行的代码。我不清楚您想要实现什么:您能否指定系列和点击的点编号之间的关系以及您想要显示的内容?很抱歉,不清楚。我想实现的是,当单击系列1的数据点1时,会出现图表2,当单击系列1的数据点2时,会出现图表3等。我希望这更清楚一点。在我最初的帖子中,我错误地说我希望在选择不同系列时显示隐藏的图表。我想说的不是这个系列,而是数据点。更新后的帖子反映了最新的要求
Option Explicit
Dim myClassModule As New EventClassModule
Private Sub Workbook_Open()
Set myClassModule.myChartClass = _
Sheet1.ChartObjects("Chart 1").Chart
End Sub