我们想使用键创建一个堆叠的条形图,以格式化每个字段的颜色。
在左边,我们有键,在右边,我们有每个条形图段的长度。这就是我们现在所拥有的。
问题是excel没有使用分配给它的键对图表进行颜色编码。相反,它只是按行对它们进行颜色编码。
例如:
我们需要将所有管理颜色标记为红色,将介绍颜色标记为黄色,等等。但是在当前情况下,excel会将第一行标记为蓝色,第二行标记为黄色,依此类推。
答案 0 :(得分:1)
示例:
Sub ColorByCategory()
Dim cht As Chart, s As Long, p As Long, cat
Set cht = ActiveSheet.ChartObjects(1).Chart 'for example
'here a series corresponds to a row of data...
For s = 1 To cht.SeriesCollection.Count
With cht.SeriesCollection(s)
'...and points are grouped by data column
For p = 1 To .Points.Count
'find the category from the series and point numbers
cat = Range("c4").Offset(s, (p - 1) * 2).Value
.Points(p).Format.Fill.ForeColor.RGB = CatToColor(cat)
Next p
End With
Next s
End Sub
'Map a category to a fill color using a lookup range
Function CatToColor(cat) As Long
CatToColor = Sheet1.Range("A1:A5").Find(cat).Interior.Color
End Function