使用键对堆叠的条形图进行颜色编码

时间:2018-11-28 03:28:13

标签: excel vba

我们想使用键创建一个堆叠的条形图,以格式化每个字段的颜色。

enter image description here

在左边,我们有键,在右边,我们有每个条形图段的长度。这就是我们现在所拥有的。

enter image description here

问题是excel没有使用分配给它的键对图表进行颜色编码。相反,它只是按行对它们进行颜色编码。

例如:
我们需要将所有管理颜色标记为红色,将介绍颜色标记为黄色,等等。但是在当前情况下,excel会将第一行标记为蓝色,第二行标记为黄色,依此类推。

1 个答案:

答案 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

enter image description here