显示和隐藏活动图表

我有这个代码,允许图表显示和隐藏,但是我有太多的图表和硬编码每个将是一个很大的麻烦。 因此,是否可以隐藏和显示基于活动图表的图表?

我有这个代码,我尝试将Chartobjects("Chart4")replace为ActiveChart但它说对象不支持该属性。 任何替代方法,使这种情况发生或有什么毛病我的代码? 先谢谢你!

 Sub ActiveChartShowHide() With Sheets("Sheet4").ChartObjects("Chart 4") .Visible = Not .Visible End With End Sub 

ActiveChart引用Chart对象的成员Chart对象。 你的代码应该是:

 With ActiveChart.Parent .Visible = Not .Visible End With 

您可以遍历图表对象来显示或隐藏所有这些对象,以节省时间和input:

 Option Explicit Sub HideAllChartsInSheet1() Dim oChartObject As ChartObject For Each oChartObject In Sheet1.ChartObjects oChartObject.Visible = False Next Set oChartObject = Nothing End Sub 

Sheet1replace为对实际Worksheet对象的引用,当然使用oChartObject.Visible = True来显示ChartObjects。

编辑 :让我们改变子来修改特定的图表对象:

 Option Explicit Sub ChartVisible(psName As String, pbVisible As Boolean) Dim oChartObject As ChartObject For Each oChartObject In Sheet1.ChartObjects If UCase(oChartObject.Name) = UCase(psName) Then oChartObject.Visible = pbVisible End If Next Set oChartObject = Nothing End Sub 

示例:使用以下来隐藏Sheet1上的“图表4”:

 Call ChartVisible("Chart 4", False) 

您可以select您的图表,然后隐藏它:

 ActiveSheet.ChartObjects("Chart 1").Activate Selection.Visible = false