我遇到了一个墙设置图表的辅助轴的最小和最大刻度属性 - 保持得到“对象没有此属性”错误 . 我修好了,但我想知道怎么做 .
经过几个小时的谷歌搜索和尝试不同的选项(三 . 三个愚蠢的小时),我随意决定通过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文档中, Shapes(1) 和 ChartObjects(1) 都返回一个 Chart 对象,但是当我通过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