4

在一个 Excel 工作表中包含一个图表,该图表绑定了另一个工作表中的数据。图表系列都是线系列。我需要线系列的一半作为实线,另一半作为虚线。这可以手动选择点改变线条样式,这不是我需要的方式,我需要的方式是来自 vba 代码,我们可以像半线一样用实线和另一个用虚线。

在此处输入图像描述

上面的图像我需要从 vba 代码中执行此操作。我搜索了我的网站并应用了提供的解决方案,但这些解决方案正在应用。非常感谢提供的任何解决方案。

4

2 回答 2

3

你应该可以这样做:

ActiveChart.SeriesCollection(1).ChartType = xlLineStacked
ActiveChart.SeriesCollection(1).Points(14).Format.Line.DashStyle = 3

所以在我的例子中,第一个数据系列是一条普通的线,但最后一点(此图中的 14 点)的格式更改为破折号。

于 2013-10-14T10:29:20.847 回答
1

简短的回答是否定的。

更长更有用的答案是您必须将系列分成两部分,因为这不能用于单个系列。该行是属于SeriesCollection其格式化属性下的对象的单个对象,如非常hacky代码所示,该代码用于演示底层对象模型:

Sub editChart()

    Dim cO As Chart
    Set cO = ActiveChart
    Dim s As Series

    Set s = cO.SeriesCollection(1)
    s.Format.Line.DashStyle = msoLineDash

    Set s = cO.SeriesCollection(2)
    s.Format.Line.DashStyle = msoLineSolid

End Sub

您可能会对 的自定义格式感到困惑Points,其中可能有许多附加到 a SeriesCollection,因为它们可以单独格式化。

请注意,如果您希望这些线连接起来,它们必须共享一个数据点(而不是第一个Series在点停止,n第二个Series在点开始n+1)。

于 2013-02-27T08:06:58.737 回答