2014-03-05 157 views
1

我正在使用VBA創建一些我需要做的圖形。使用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

一般像這樣可以工作:

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類似的問題。