Excel установил цвет линейного графика на основе цвета ячеек - PullRequest
0 голосов
/ 16 октября 2018

Итак, у меня есть набор данных, см. Рисунок ниже.enter image description here

Я хочу, чтобы цвет графика был таким же, как цвет фона соответствующей строки.Верхние 10 должны быть зелеными, а нижние 10 красными в этом примере.Это то, чем я буду заниматься постоянно, иногда с большими наборами данных, поэтому индивидуальный выбор цвета каждой строки нецелесообразен.

Может кто-нибудь помочь мне?-Tim

1 Ответ

0 голосов
/ 16 октября 2018

Нечто подобное может помочь вам пройти большую часть пути туда.

  • Итерация по SeriesCollection из Chart и захват Formula каждого Series.
  • Получить ссылку на исходные данные (3-я частьформула) с помощью Split.
  • Установите ForeColor.RGB каждого Series равным 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
...