2011-04-11 256 views
3

我已經爲Excel 2007程序創建了一個VBA,它基於活動工作簿中最多52個不同的選項卡自動創建ROI的條形圖。我接近完成了,只有我無法弄清楚的是如何改變條形圖的顏色。更改條形圖中的條形顏色 - VBA Excel 2007

這些圖形是在他們自己的子功能中創建的,用像這樣的調用來調用。每當變量被調用時,每個變量都會變化。

Call AddChartObject(1, 1, "Example", extraWeeks, weekDifference) 

它調用我的子看起來像這樣。

Sub AddChartObject(j As Integer, k As Integer, passedChartTitle As String, xtraWks As Integer, ttlWks As Integer) 

    Dim topOfChart As Integer 

    topOfChart = 25 + (350 * j) 

    'Adds bar chart for total sales 

    With ActiveSheet.ChartObjects.Add(Left:=375, Width:=475, Top:=topOfChart, Height:=325) 
     .Chart.SetSourceData Source:=Sheets("Consolidation").Range("$A$" & 3 + ((17 + xtraWks) _ 
      * j) & ":$C$" & (4 + ttlWks) + ((17 + xtraWks) * k)) 
     .Chart.ChartType = xl3DColumnClustered 
     .Chart.SetElement (msoElementDataLabelShow) 
     .Chart.HasTitle = True 
     .Chart.ChartTitle.Text = passedChartTitle & " Sales" 
     .Chart.SetElement (msoElementLegendBottom) 
     .Chart.SetElement (msoElementDataLabelNone) 
     .Chart.RightAngleAxes = True 
    End With 

End Sub 

根據市場營銷的願望,我想在條形圖中SECOND系列上使用的RGB顏色是(155,187,89)。我很確定有一個.chart。????。 = RGB(155,187,89)命令我可以在我的With中使用來設置它,但是我花了太多的時間試圖弄清楚它,只是想出了什麼。

感謝您的幫助!

回答

9

@ScottyStyles:

你試過

.Chart.SeriesCollection([index]).Interior.Color = RGB(155, 187, 89) 

(其中[索引]是要更改顏色系列的佔位符)?

+0

完美!我只是想念。內部。一部分。謝謝你一堆Jubbles! – ScottyStyles 2011-04-12 16:13:15

2

它適用於我ScottyStyles在一個非常相似的情況,但只爲第一個系列收集。我在下面使用了相同的權利,並沒有改變SeriesCollection(2)的顏色。那是一組線性數據。

ActiveSheet.ChartObjects("Chart 1").Activate 

    ActiveChart.ClearToMatchStyle 

    ActiveChart.SeriesCollection(1).Interior.Color = RGB(85, 142, 213) 
    ActiveChart.SeriesCollection(2).Interior.Color = RGB(192, 0, 0)