我遇到了一个墙,设置了图表辅助轴的最小和最大尺度属性 - 保持得到一个"对象没有这个属性"错误。我修好了,但我想知道怎么做。
经过几个小时的谷歌搜索和尝试不同的选项(三。三个愚蠢的小时),我随意决定通过Shapes集合而不是ChartObjects集合引用图表,这是有效的。
所以,好的:
ActiveSheet.Shapes(1).Chart.Axes(xlValue,xlSecondary).MinimumScale = cMin
和坏:
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue,xlSecondary).MinimumScale = cMin
但我 能够设置其他属性。例如,以下代码行有效:
ActiveSheet.ChartObjects(1).Chart.Axes(xlValue,xlSecondary).AxisTitle.Text = "Current (A)"
从MSDN文档中,形状(1)和 ChartObjects(1)都返回图表对象,但我无法'当我通过ChartObjects集合访问图表时访问所有属性。也就是说,当我将图表设置为
时,我能够在Axes方法中设置所有属性Dim cht as Chart
Set cht = ActiveSheet.Shapes(1).Chart
但如果我将图表设置为
则不会Dim cht as Chart
Set cht = ActiveSheet.ChartObjects(1).Chart
所以我的问题是,为什么会出现这种差异?这是VBA语法的一些隐藏的细微差别,还是更可能是我的机器的一小部分?
Windows 7框上的Excel 2013