如何绘制轴外最大值的图表值?

时间:2012-06-19 16:59:49

标签: excel charts dword

在以前版本的Excel中,您可以创建一个注册表项,以允许Excel使用QFE_Bonn dword = 1显示位于轴min / max之外的值/标签。这就是我用于Excel 2003的内容:Plot lines that contain labels disappear ...

我无法在Excel 2010(Office Pro Plus)中找到类似的修补程序或本机功能。任何想法如何实现,或MS完全删除此功能?

以下是Excel 2003中示例的屏幕截图。我创建了一系列数据,这些数据均匀地超过了y轴的最大值。此系列的颜色填充已被删除

Excel screenshot

要完成外观,请删除系列的边框,使其看起来不可见。然后用相关数据替换系列的值标签。

1 个答案:

答案 0 :(得分:1)

使用DataLabels.Left属性可以解决此问题,该属性将DataLabel相对于ChartArea进行定位。

这是一个示例VB解决方案:

sub FakeLabels()
Dim sF As Double
Dim lOff As Double
Dim p As Double

ActiveSheet.ChartObjects(1).Activate

With ActiveChart
    For sF = 1 To .SeriesCollection.Count
        If .SeriesCollection(sF).Name = "FakeSeries" Then
             'Define the lOff variable by adding 100, or some other value
             lOff = .SeriesCollection(sF).Points(1).DataLabel.Left + 100
             For p = 1 To .SeriesCollection(sF).Points.Count
                 .SeriesCollection(sF).Points(p).DataLabel.Left = lOff               
             Next p
        End If
    Next sF
End With

它产生相同的结果,唯一的新要求是将“虚拟”系列的值保持在图表的轴最小/最大值范围内。

令人惊喜的是,重新调整图表大小似乎不会影响标签的相对位置。

更新于2013年9月25日

自从第一次提出这个问题以来,我一直使用“文本框”方法。但是管理标签的位置和文本框位置之间的相互作用,PlotArea的相对位置,即何时使用.InsideWidth.Width或{{1}非常笨拙}}与.InsideLeft以及是否需要对点值进行任何形式的“调整”,就像往常一样,它们永远不会完全一致。

在仔细阅读其他一些与图表相关的查询的PPT对象模型参考时,我stumbled upon this property似乎复制了以前的修补程序/注册表黑客的功能。

.Left