确定vba中的条形颜色

时间:2014-07-30 20:10:08

标签: excel-vba vba excel

是否有可能在VBA中控制3D直方图中每个单独3D条的颜色(例如此处) enter image description here

我想传递一个带有多个条目的颜色矩阵,因为条形分别指定每个条形的颜色(用rgb或其他颜色代码)。没有手动操作可能吗?由于条形的高度与它应该获得的颜色无关,条件格式化并不能真正解决问题。矩阵是20乘20,所以手工操作是非常耗时的。

1 个答案:

答案 0 :(得分:0)

这应该让你开始:

Sub Tester()

Dim cht As Chart, s As Long, p As Long
Dim ser As Series, arr, rng As Range

    Set rng = ActiveSheet.Range("A1:G10") 'for example
    arr = rng.Value 

    Set cht = ActiveSheet.ChartObjects(1).Chart

    For s = 1 To cht.SeriesCollection.Count
        Set ser = cht.SeriesCollection(s)
        For p = 1 To ser.Points.Count

            'assigning from array
            ser.Points(p).Interior.Color = arr(s, p)

            'assigning from worksheet cell
            'ser.Points(p).Interior.Color = rng.Cells(s, p).Interior.Color

        Next p
    Next

End Sub

您可以输入RGB值的二维数组,您可以使用sp进行索引 该数组可以从工作表中读取(如示例中所示),也可以来自其他来源。