基于单元格颜色的 VBA 着色条形图

时间:2021-02-05 19:40:28

标签: excel vba

我正在尝试根据单元格颜色为条形图着色。我能够让它为条形图中的第一个系列着色,但我正在努力让它迭代以从范围 B5:B25 中提取颜色,然后将这些颜色应用于条形图中的不同系列。条形图并不总是具有相同数量的系列(最多可达 B25)。我将不胜感激任何有关如何正确迭代的指导。

enter image description here

Sub ColorAnItem()

Dim c As Range
Dim chrt As Chart

For Each c In Range("B5:B25")
    ActiveSheet.ChartObjects(1).Activate
    Set chrt = ActiveChart

    ActiveSheet.Cells(c).Select
    clr = ActiveSheet.Cells(c).Interior.Color
                r = clr Mod 256
                g = clr \ 256 Mod 256
                b = clr \ 65536 Mod 256
    chrt.SeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = RGB(r, g, b)
    
 Next c
End Sub

1 个答案:

答案 0 :(得分:1)

这样的事情应该做你想做的:

Sub ColorAnItem()

    Dim i As Long, rng As Range, chrt As Chart
    
    Set chrt = ActiveSheet.ChartObjects(1).Chart
    Set rng = ActiveSheet.Range("B5:B25")
    
    For i = 1 To rng.Cells.Count
        
        chrt.SeriesCollection(1).Points(i).Format.Fill.ForeColor.RGB = _
                    rng.Cells(i).Interior.Color
        
    Next i

End Sub

enter image description here