2

Можно ли отформатировать цвета гистограммы с помощью одного ряда на основе их значений, то есть все, что больше 50, будет зеленым, а что-либо ниже будет красным?

То, что я сейчас должен сделать, это обходной путь:

У меня есть данные для оригинальной серии, а затем я создаю 2 подмножества. Один для красного, один для зеленого, и используйте оператор if, чтобы пройти только значения выше 50 для зеленого ряда и ниже 50 для красного ряда, затем вычерчивайте оба ряда, очевидно, где один имеет пробелы, другой нет.

Но это раздражает, я бы предпочел простой способ установить условный формат для самой серии.

Это возможно?

1 ответ1

0

Введите следующий код VBA в качестве модуля:

Sub FormatChartbyColour()

Set rRng = Selection


ColorIndex1 = 3
ColorIndex2 = 4



ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=rRng
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetElement (msoElementChartTitleAboveChart)


ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Name = "=""Colour 1"""
ActiveChart.SeriesCollection(2).Name = "=""Colour 2"""


ActiveChart.SeriesCollection(3).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(ColorIndex1)
ActiveChart.SeriesCollection(2).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(ColorIndex2)

With ActiveChart.Parent
    .Height = 250
    .Width = 250
    .Top = 100
    .Left = 100
End With

ActiveChart.Axes(xlCategory).TickLabels.Font.Size = 10
ActiveChart.Axes(xlCategory).TickLabels.Font.Bold = False
ActiveChart.Axes(xlCategory).TickLabels.Font.Italic = True
ActiveChart.ChartTitle.Text = "Chaert Title (Colour1:Red , Colour2:Green)"
ActiveChart.ChartTitle.Font.Size = 10


With ActiveChart
    vX = .SeriesCollection(1).XValues
    vY = .SeriesCollection(1).Values


    For thisvY = 1 To UBound(vY)
        If vY(thisvY) = 1 Then .SeriesCollection(2).Points(thisvY).Interior.ColorIndex = ColorIndex1
        If vY(thisvY) = 2 Then .SeriesCollection(2).Points(thisvY).Interior.ColorIndex = ColorIndex2

    Next thisvY

End With


End Sub

Как это устроено:

  • Выберите диапазон данных A23:C27 .
  • Запустить макрос.

Замечания:

  • Col Index - вспомогательный столбец, вы можете изменять Colors .
  • Тип и размер диаграммы доступны для редактирования.
  • Настройте ссылки на ячейки, как вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .