是否有可能在VBA中控制3D直方图中每个单独3D条的颜色(例如此处)
我想传递一个带有多个条目的颜色矩阵,因为条形分别指定每个条形的颜色(用rgb或其他颜色代码)。没有手动操作可能吗?由于条形的高度与它应该获得的颜色无关,条件格式化并不能真正解决问题。矩阵是20乘20,所以手工操作是非常耗时的。
答案 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值的二维数组,您可以使用s
和p
进行索引
该数组可以从工作表中读取(如示例中所示),也可以来自其他来源。