【问题标题】:Formatting the width of y-axis labels格式化 y 轴标签的宽度
【发布时间】:2013-05-22 05:48:15
【问题描述】:

我正在编写一个 VBA Excel 脚本,该脚本使用数据透视表创建一堆图表并将它们复制到 Word 文档中,从而创建报告。 图表成对出现,粘贴后,y 轴之间有一点“距离”。 如果他们被延长,我希望他们做一个单行。

我正在使用TickLables.Offset 属性。它在两个图表中设置为相同的值,但这不起作用。

欢迎提出任何建议。

编辑:

问题截图:

代码:

ActiveChart.Axes(xlValue).Select
Selection.TickLabels.AutoScaleFont = True
With Selection.TickLabels.Font
    .Name = "Arial"
    .FontStyle = "Normal"
    .Size = 10
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
    .Background = xlAutomatic
End With
With Selection.TickLabels
    .Offset = 500
End With

【问题讨论】:

  • 显示适当的代码,您也可以附上显示问题的屏幕截图...
  • 你知道了,我在编辑这篇文章时被打断了,忘记了......
  • 我完全忘记了你的问题...... :( 它对你仍然有效吗?我根据你的图片看到的 - 原因是 y 轴值的长度。用相同的值不起作用。您应该为两个图表设置不同的偏移值以获得适当的结果。可能需要进行一些测试...
  • 别担心,我通过将TickLabelsOrientation 属性设置为xlUpward 来解决这个问题。那仍然不能解决我的问题,所以我保持这个话题开放。

标签: excel vba charts axis-labels


【解决方案1】:

由于Offset 是一个中间百分比,因此在.Axes(xlValue).TickLabels.Offset 中很难确定。为了对齐,在我的情况下,在一个图表中,我得到了完美的结果:

.Legend.Left = .PlotArea.Left + .PlotArea.Width - .PlotArea.InsideWidth

.Legend.Width = .PlotArea.InsideWidth

换句话说,当您仅在左侧(或右侧)有 TickLables 时,Ticklables 的宽度是内部宽度和外部宽度之间的差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多