在一个 Excel 工作表中包含一个图表,该图表绑定了另一个工作表中的数据。图表系列都是线系列。我需要线系列的一半作为实线,另一半作为虚线。这可以手动选择点改变线条样式,这不是我需要的方式,我需要的方式是来自 vba 代码,我们可以像半线一样用实线和另一个用虚线。
上面的图像我需要从 vba 代码中执行此操作。我搜索了我的网站并应用了提供的解决方案,但这些解决方案正在应用。非常感谢提供的任何解决方案。
在一个 Excel 工作表中包含一个图表,该图表绑定了另一个工作表中的数据。图表系列都是线系列。我需要线系列的一半作为实线,另一半作为虚线。这可以手动选择点改变线条样式,这不是我需要的方式,我需要的方式是来自 vba 代码,我们可以像半线一样用实线和另一个用虚线。
上面的图像我需要从 vba 代码中执行此操作。我搜索了我的网站并应用了提供的解决方案,但这些解决方案正在应用。非常感谢提供的任何解决方案。
你应该可以这样做:
ActiveChart.SeriesCollection(1).ChartType = xlLineStacked
ActiveChart.SeriesCollection(1).Points(14).Format.Line.DashStyle = 3
所以在我的例子中,第一个数据系列是一条普通的线,但最后一点(此图中的 14 点)的格式更改为破折号。
简短的回答是否定的。
更长更有用的答案是您必须将系列分成两部分,因为这不能用于单个系列。该行是属于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
)。