我正在使用VBA创建一些我需要做的图形。
基本上,我想要做的是自动创建第一个系列,然后第二个系列,从第一个系列中复制颜色和格式。
我正在尝试执行此代码,但没有成功:
ActiveChart.SeriesCollection(a - 1).Select
ActiveChart.SeriesCollection(a).Border.ColorIndex = ActiveChart.SeriesCollection(a - 1).Border.ColorIndex
ActiveChart.SeriesCollection(a).MarkerBackgroundColorIndex = ActiveChart.SeriesCollection(a - 1).MarkerBackgroundColorIndex
ActiveChart.SeriesCollection(a).MarkerForegroundColorIndex = ActiveChart.SeriesCollection(a - 1).MarkerForegroundColorIndex
ActiveChart.SeriesCollection(a).MarkerStyle = ActiveChart.SeriesCollection(a - 1).MarkerStyle
有人可以帮助我如何阅读上一系列中的属性并将其应用到下一个系列吗?
感谢。
答案 0 :(得分:1)
一般来说,这样的事情可行:
Sub Tester()
Dim Cht as Chart
Dim a As Series, b As Series, x As Long
Set cht = ActiveChart
Set a = cht.SeriesCollection(1)
For x = 2 To cht.SeriesCollection.Count
Set b = cht.SeriesCollection(x)
b.Border.Color = a.Border.Color
b.MarkerBackgroundColor = a.MarkerBackgroundColor
b.MarkerForegroundColor = a.MarkerForegroundColor
b.MarkerStyle = a.MarkerStyle
Next x
End Sub
但请注意,除非第一个系列是手动格式化的,否则不会读取某些属性,而且不仅仅是“默认”格式。
例如:有关类似问题,请参阅Fill and Border color property of data point marker (scatter or line) Excel VBA。