可以将Line系列绘制为半实心,半虚线?

时间:2013-02-27 07:30:09

标签: excel vba excel-vba excel-2010

在excel表中包含一个图表,该图表绑定了另一张表中的数据。图表系列都是行系列。我需要一半的行系列为实线,另一半为虚线。这可以手动完成选择改变线条样式的点,这不是我需要的方式,我需要的方法是从vba代码中我们可以做半线用实线和另一条用虚线。

enter image description here

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

2 个答案:

答案 0 :(得分:3)

你应该能够这样做:

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

所以在我的情况下,第一个数据系列是一个简单的行,但最后一点(此图中的14)的格式更改为破折号。

答案 1 :(得分: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的自定义格式设置感到困惑,SeriesCollection可能会有很多附加格式,因为这些格式可以单独格式化。

请注意,如果您希望这些行加入,则必须共享一个数据点(而不是第Series个停靠点n,第二个Series从点{{}开始1}})。