VBA – 图表颜色不会更改

我有这个代码来创build一个图表:

Sub CreateChart() Dim rng As Range Dim cht As Object Set rng = ActiveSheet.Range("A4:C8") Set cht = ActiveSheet.Shapes.AddChart2 cht.Chart.SetSourceData Source:=rng, PlotBy:=xlColumns cht.Chart.ChartType = xlBarStacked cht.SeriesCollection(1).Interior.Color = RGB(255, 255, 255) End Sub 

但系列1酒吧不改变颜色。

你能帮我吗?

谢谢!

请参阅下面的答案,它以不同的方法实现您想要的内容,让您在将来拥有更大的灵活性:

 Option Explicit Sub CreateChart() Dim rng As Range Dim cht As ChartObject Dim cht_Series As Series Set rng = ActiveSheet.Range("A4:C8") ' in brackets (Left, Width, Top, Height) >> modify according to your needs Set cht = ActiveSheet.ChartObjects.Add(100, 100, 100, 100) With cht .Chart.SetSourceData Source:=rng .Chart.PlotBy = xlColumns .Chart.ChartType = xlBarStacked End With Set cht_Series = cht.Chart.SeriesCollection(1) ' this will result to white (by your post) >> modify to your desired color cht_Series.Format.Fill.ForeColor.RGB = RGB(255, 255, 255) End Sub 

尝试这个 :

 Sub CreateChart() Dim rng As Range Set rng = ActiveSheet.Range("A4:C8") ActiveSheet.Shapes.AddChart.Select With ActiveChart .SetSourceData Source:=Range("Feuil1!$A$4:$B$8") .SeriesCollection.NewSeries .SetSourceData Source:=rng, PlotBy:=xlColumns .ChartType = xlBarStacked .SeriesCollection(1).Interior.ColorIndex = 5 'Change value to change color End With End Sub 

并select颜色索引表中的值。 5对应于蓝色。 你可以在这里得到颜色索引表。