Excel VBA" AxisBetweenCategories" ChartSpace中缺少的属性

时间:2014-07-18 21:10:46

标签: excel vba charts userform

我徒劳地尝试在Userform ChartSpace中将AxisBetweenCategories属性设置为False。它是一个clusteredBarChart。我在普通图表中手动完成了同样的工作。录制Marco生成具有AxisBetweenCategories属性的代码。为什么我不能在Userform ChartSpace中使用它。

me.ChartSpace1.Charts(0).Axes(0).AxisBetweenCategories = False 'doesn't work

我想念什么? 感谢

1 个答案:

答案 0 :(得分:2)

ChartSpace对象中的“图表”类型为ChChart,您在Chart(工作表或图表)上使用的相同属性和方法不会直接翻译,因此不幸宏记录器不会有太大帮助,你将不得不求助于老式的调试,试用和测试。错误。

我使用Locals窗口检查对象模型中的提示(我观察的类型是ChChart等)。

enter image description here

然后,您可以查看可用的属性和Google usually can point you in the right direction,例如this example。探索智能感知,我发现实际上有限的选项与工作表上的Chart对象不同。

毕竟,这可能不是您想要听到的答案,但无法按照您希望的方式完成

This似乎验证了观察结果,并表明虽然有些事情是相同的,但其他事情却无法以同样的方式呈现。

  

[Chartspace Charts do]没有精制的轴交叉为Excel   确实。两者之间的特征在某些领域是相似的   不在其他人中

similar example from Microsoft

  

此示例将类别轴设置为在图表工作区中的值零(0)处穿过值轴。

Sub SetCrossingValue()
    Dim chConstants
    Dim axValueAxis
    Dim axCategoryAxis

    Set chtContants = ChartSpace1.Constants

    Set axValueAxis = ChartSpace1.Charts(0).Axes(chConstants.chAxisPositionValue)
    Set axCategoryAxis = ChartSpace1.Charts(0).Axes(chConstants.chAxisPositionCategory)

    axValueAxis.CrossingAxis = axCategoryAxis

    axCategoryAxis.CrossesAtValue = 0
End Sub