VBA 出类拔萃如何通过图表名称访问图表比例?

问题描述


看起来很简单,但是不知道如何按名称操作图表。
例如,此代码工作正常:
Sub scale_chart()
    Dim chart_name As String
    chart_name = "Chart 3"
    ActiveSheet.ChartObjects(chart_name).Select
    With ActiveChart.Axes(xlValue)
        .MaximumScale = 800000
    End With
End Sub

但下面的代码提供“运行时错误‘438’对象不支持属性方法

Sub scale_chart()
    Dim chart_name As String
    chart_name = "Chart 3"
    With ActiveSheet.Charts(chart_name).Axes(xlValue)
        .MaximumScale = 800000
    End With
End Sub


Sub scale_chart()
    Dim chart_name As String
    chart_name = "Chart 3"
    With ActiveSheet.ChartObjects(chart_name).Charts.Axes(xlValue)
        .MaximumScale = 800000
    End With
End Sub

我正在尝试避免使用 .select,因为它在这里推荐 How to avoid using Select in Excel VBA 但还是需要更多的知识。
如果有人指出我做错了什么,我将不胜感激:)
ps:这是VBA Excel 2010

解决方法

Try,Sub scale_chart()
    Dim chart_name As String
    Dim Ws As Worksheet
    Dim objCht As ChartObject
    Dim Cht As Chart
    
    Set Ws = ActiveSheet
    
    chart_name = "Chart 3"
    Set objCht = Ws.ChartObjects(chart_name)
    Set Cht = objCht.Chart
    With Cht.Axes(xlValue)
        .MaximumScale = 800000
    End With
End Sub