问题描述
看起来很简单,但是不知道如何按名称操作图表。
例如,此代码工作正常:
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