2011-04-11 199 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)