【问题标题】:Excel set color of line graph based on color of cellsExcel根据单元格颜色设置折线图颜色
【发布时间】:2019-03-20 10:51:39
【问题描述】:

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

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

谁能帮帮我? -蒂姆

【问题讨论】:

  • 你会为此考虑 VBA 宏吗?如果颜色在宏中被硬编码怎么办。我的工作示例代码如下:
  • ` ActiveSheet.ChartObjects("Chart 1").Activate ActiveChart.FullSeriesCollection(1).Format.Line.ForeColor.RGB = RGB(255, 0, 0) ActiveChart.FullSeriesCollection(2)。 Format.Line.ForeColor.RGB = RGB(0, 255, 0) ActiveChart.FullSeriesCollection(3).Format.Line.ForeColor.RGB = RGB(0, 0, 255)`

标签: excel colors linegraph


【解决方案1】:

这样的事情可能会让你大部分时间到达那里。

  • 遍历Chart 的SeriesCollection 并获取每个Series 的Formula。
  • 使用Split 获取对源数据(公式的第三部分)的引用。
  • 将每个Series 的ForeColor.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$2,Sheet1!$B$1:$K$1,Sheet1!$B$2:$K$2,1)
            ' and returns Sheet1!$B$2:$K$2
            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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2013-01-03
    相关资源
    最近更新 更多