VBA: 使用数组输入 RGB 颜色

VBA: Entering an RGB color using an array

我想根据数组输入为图表着色。 它是这样的:

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