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

ewm0tg9j  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(211)

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

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
at0kjp5o

at0kjp5o1#

像这样的东西应该做你想要的:

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

相关问题