Vba 显示和隐藏活动图表

Vba 显示和隐藏活动图表,vba,excel,Vba,Excel,我有这个代码,它允许图表显示和隐藏,但我有太多的图表和硬编码每一个将是一个很大的麻烦。因此,是否可以基于活动图表隐藏和显示图表 我有这个代码,我尝试将Chartobjects(“Chart4”)替换为ActiveChart,但它说该对象不支持该属性。有没有其他方法可以实现这一点,或者我的代码有什么问题?提前谢谢你 Sub ActiveChartShowHide() With Sheets("Sheet4").ChartObjects("Chart 4") .Visible = Not .Vi

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

我有这个代码,我尝试将
Chartobjects(“Chart4”)
替换为
ActiveChart
,但它说该对象不支持该属性。有没有其他方法可以实现这一点,或者我的代码有什么问题?提前谢谢你

Sub ActiveChartShowHide()


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


End Sub

您只需选择图表,然后将其隐藏:

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

您只需选择图表,然后将其隐藏:

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

您只需选择图表,然后将其隐藏:

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

您只需选择图表,然后将其隐藏:

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

您可以循环查看图表对象以显示或隐藏所有对象,以节省时间和键入:

Option Explicit

Sub HideAllChartsInSheet1()
    Dim oChartObject As ChartObject

    For Each oChartObject In Sheet1.ChartObjects
        oChartObject.Visible = False
    Next

    Set oChartObject = Nothing
End Sub
Sheet1
替换为对实际工作表对象的引用,当然可以使用
oChartObject.Visible=True
来显示图表对象

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

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
示例:使用以下选项隐藏活页1上的“图表4”:

Call ChartVisible("Chart 4", False)

您可以循环查看图表对象以显示或隐藏所有对象,以节省时间和键入:

Option Explicit

Sub HideAllChartsInSheet1()
    Dim oChartObject As ChartObject

    For Each oChartObject In Sheet1.ChartObjects
        oChartObject.Visible = False
    Next

    Set oChartObject = Nothing
End Sub
Sheet1
替换为对实际工作表对象的引用,当然可以使用
oChartObject.Visible=True
来显示图表对象

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

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
示例:使用以下选项隐藏活页1上的“图表4”:

Call ChartVisible("Chart 4", False)

您可以循环查看图表对象以显示或隐藏所有对象,以节省时间和键入:

Option Explicit

Sub HideAllChartsInSheet1()
    Dim oChartObject As ChartObject

    For Each oChartObject In Sheet1.ChartObjects
        oChartObject.Visible = False
    Next

    Set oChartObject = Nothing
End Sub
Sheet1
替换为对实际工作表对象的引用,当然可以使用
oChartObject.Visible=True
来显示图表对象

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

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
示例:使用以下选项隐藏活页1上的“图表4”:

Call ChartVisible("Chart 4", False)

您可以循环查看图表对象以显示或隐藏所有对象,以节省时间和键入:

Option Explicit

Sub HideAllChartsInSheet1()
    Dim oChartObject As ChartObject

    For Each oChartObject In Sheet1.ChartObjects
        oChartObject.Visible = False
    Next

    Set oChartObject = Nothing
End Sub
Sheet1
替换为对实际工作表对象的引用,当然可以使用
oChartObject.Visible=True
来显示图表对象

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

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
示例:使用以下选项隐藏活页1上的“图表4”:

Call ChartVisible("Chart 4", False)

ActiveChart是指作为ChartObject对象成员的Chart对象。您的代码应该是:

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

ActiveChart是指作为ChartObject对象成员的Chart对象。您的代码应该是:

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

ActiveChart是指作为ChartObject对象成员的Chart对象。您的代码应该是:

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

ActiveChart是指作为ChartObject对象成员的Chart对象。您的代码应该是:

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



我想有选择地隐藏和取消隐藏图表,被误解了。我已经更新了答案,看看你是否可以使用它。我不认为您可以在ActiveChart中使用Visible属性。psName应该被替换为图表名isit?程序运行但没有图表不会变为不可见,参数是图表名和布尔值,以决定是否显示或隐藏它。将其添加到代码示例中。我想有选择地隐藏和取消隐藏图表,这是误解。我已经更新了答案,看看你是否可以使用它。我不认为您可以在ActiveChart中使用Visible属性。psName应该被替换为图表名isit?程序运行但没有图表不会变为不可见,参数是图表名和布尔值,以决定是否显示或隐藏它。将其添加到代码示例中。我想有选择地隐藏和取消隐藏图表,这是误解。我已经更新了答案,看看你是否可以使用它。我不认为您可以在ActiveChart中使用Visible属性。psName应该被替换为图表名isit?程序运行但没有图表不会变为不可见,参数是图表名和布尔值,以决定是否显示或隐藏它。将其添加到代码示例中。我想有选择地隐藏和取消隐藏图表,这是误解。我已经更新了答案,看看你是否可以使用它。我不认为您可以在ActiveChart中使用Visible属性。psName应该被替换为图表名isit?程序运行但没有图表不会变为不可见,参数是图表名和布尔值,以决定是否显示或隐藏它。将其添加到代码示例中。但我仍然需要定义图表名称。我想激活光标所在的图表。但我仍然需要定义图表名称。我想激活光标所在的图表。但我仍然需要定义图表名称。我想激活光标所在的图表。但我仍然需要定义图表名称。我想激活光标所在的图表。我收到“对象变量或块变量未设置”错误消息!我确实通过点击激活了它哪一行给了你错误?您的工作表是否受到保护?当我想隐藏但无法显示时,它会工作:/Yes它不会工作,因为隐藏的图表不能成为活动图表。您想让所有图表再次可见,还是只显示一个特定的图表?我收到一个“对象变量或未设置块变量”错误消息!我确实通过点击激活了它哪一行给了你错误?您的工作表是否受到保护?当我想隐藏但无法显示时,它会工作:/Yes它不会工作,因为隐藏的图表不能成为活动图表。您想让所有图表再次可见,还是只显示一个特定的图表?我收到一个“对象变量或未设置块变量”错误消息!我确实通过点击激活了它哪一行给了你错误?您的工作表是否受到保护?当我想隐藏但无法显示时,它会工作:/Yes,它不会工作,因为隐藏的图表可能会