【发布时间】:2013-12-27 01:56:34
【问题描述】:
我知道在 Excel VBA 中使用 Activate 和 Select 并不是最佳做法。我已经看到有关在处理范围时如何避免它们的参考资料(例如:LINK)。在处理ChartObjects(或除 Ranges 之外的任何东西,一般来说)时,我该如何避免它们?
例如,使用 Activate 和 Select 修改 y 轴上的最大值的方法如下所示(可行):
ActiveSheet.ChartObjects("MyChart").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MaximumScale = Range("MaxVal").Value
为了避免使用Activate 和Select,我厌倦了声明变量并使用它们,但这不起作用:
Dim ws As Worksheet
Set ws = Worksheets("Chart")
With ws.ChartObjects("MyChart").Axes(xlValue)
.MaximumScale = Range("MaxVal").Value
End With
上面的代码运行(即不抛出错误),但轴上的刻度没有改变。我错过了什么?
编辑:让它与这个“冗长”的版本一起工作:
With Worksheets("Chart").ChartObjects("MyChart").Chart.Axes(xlValue)
.MaximumScale = Range("MaxVal").Value
End With
【问题讨论】: