【问题标题】:Excel VBA chart axis error: "Method 'ScaleType' of object 'Axis' failed" when reading `.ScaleType`Excel VBA图表轴错误:读取`.ScaleType`时“对象'Axis'的方法'ScaleType'失败”
【发布时间】:2014-11-26 02:40:33
【问题描述】:

我在 Excel VBA 宏中有一个作业

axscty = ax.ScaleType

这给出了错误:“对象'Axis'的方法'ScaleType'失败”。 我发现消息来源指出这是 Excel 2007 中的一个错误。其他人在设置 .ScaleType 时发现了错误,例如,

.ScaleType = xlLinear

我找到了错误的原因:我有一个带有数据系列的辅助 Y 轴。如果我将这些系列分配给主 Y 轴并删除辅助轴,错误就会消失。

有谁知道当有第二个Y轴时如何避免错误?

【问题讨论】:

  • 你是如何定义你的变量“ax”的?
  • @JonPeltier - 我现在没有带有图表和代码的示例工作簿(这是一篇旧帖子,尽管我仍然感兴趣)。很可能我做了类似Dim ax as AxisSet ax = myChart.Axes(xlValue) 的事情。我看到的唯一选择是:1)使用xlCategory而不是xlValue,2)添加第二个可选参数AxisGroup,如xlPrimaryxlSecondary。你能指出这对答案可能产生的影响吗?
  • 也许我曾经知道这件事。从 2007 年到 2013 年,这显然是一个错误。显然,ScaleType 属性仅适用于值 (Y) 轴,而不是类别 (X) 轴,即使该轴是 XY 散点图中的数值轴。
  • @JonPeltier - ScaleType 属性(用于获取和设置)被识别为类别(X)轴,只要没有辅助 Y 轴(我不知道如果有会发生什么次要 X 轴)。
  • 我刚刚在 Excel 2016 中做了一些测试。如果辅助轴上没有系列,即使辅助轴已被删除,ScaleType 也适用于主 X 轴。大概这个错误发生在 Excel 2007 到 2016 中。

标签: vba excel charts


【解决方案1】:

看起来像以下作品(如果您有任何辅助轴):

ActiveChart.SetElement (msoElementPrimaryCategoryAxisLogScale)
ActiveChart.SetElement (msoElementPrimaryValueAxisLogScale)
ActiveChart.SetElement (msoElementSecondaryCategoryAxisLogScale)
ActiveChart.SetElement (msoElementSecondaryValueAxisLogScale)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    相关资源
    最近更新 更多