Excel 根据单元格的颜色设置折线图的颜色

Excel set color of line graph based on color of cells

所以我有一组数据,见下图。

我希望折线图的颜色与相应行的背景颜色相同。在此示例中,前 10 个应为绿色,后 10 个应为红色。这是我会不断做的事情,有时会有大数据集,所以单独选择每条线的颜色不是一个可行的选择。

谁能帮帮我? -蒂姆

像这样的事情可能会让你完成大部分工作。

  • 遍历 ChartSeriesCollection 并获取每个 SeriesFormula
  • 使用 Split 获取对源数据的引用(公式的第三部分)。
  • 将每个 SeriesForeColor.RGB 设置为与其关联的数据范围的 Interior.Color 相等。

Sub ColorMyChart()
    Dim myChart As ChartObject
    Set myChart = Sheet1.ChartObjects("Chart 1")

    With myChart.Chart
        Dim i As Integer

        For i = 1 To .SeriesCollection.Count

            Dim dataAddress As String
            ' takes a formula like =SERIES(Sheet1!$A,Sheet1!$B:$K,Sheet1!$B:$K,1)
            ' and returns Sheet1!$B:$K
            dataAddress = Split(.SeriesCollection(i).Formula, ",")(2)

            Dim dataColor As Long
            ' assumes the data range all has the same color
            dataColor = Sheet1.Range(dataAddress).Interior.Color

            .SeriesCollection(i).Format.Line.ForeColor.RGB = dataColor
        Next i
    End With
End Sub