使用VBA读取图表属性

时间:2014-03-05 06:17:47

标签: vba excel-vba excel

我正在使用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

有人可以帮助我如何阅读上一系列中的属性并将其应用到下一个系列吗?

感谢。

1 个答案:

答案 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