我想根据数组输入为图表着色。它是这样的:
Public RGB_1 As Variant
Public cht As ChartObject
Public i As Integer
Public Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Main")
RGB_1 = Ws.Range(Cells(x, y), Cells(z, y)) ' x,y,z defined elsewhere
' Changing colors
With ws
i = 0
For Each cht In .ChartObjects
cht.Activate
ActiveChart.FullSeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = RGB_1(i + 1, 1) ' Color from RGB Array in the main sheet
i = i + 1
Next cht
End with
图表可以有1种或2种不同的颜色,这里我只用1作为例子。 RGB数组指的是包含“RGB(xxx,yyy,zzz)”的单元格,其中xxx,yyy,zzz是整数。运行我的sub时出现类型不匹配错误。我假设我无法输入单元格值,那么我该如何将颜色基于数组呢?对于第一次迭代,RGB_1 =“RGB(229,35,49)”(使用VBA中的监视列表)。
我会设置单元格背景颜色,然后直接读取它们来设置绘图颜色:
Public rngColors As Range
Public cht As ChartObject
Public i As Long
Public Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Main")
With ws
'note: fully-reference all Range/Cells
Set rngColors = .Range(.Cells(x, y), .Cells(z, y)) ' x,y,z defined elsewhere
For Each cht In .ChartObjects
i = 1
cht.Chart.FullSeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = _
rngColors.Cells(i).Interior.Color
i = i + 1
Next cht
End with