Может кто-нибудь привести пример того, как изменить цвета круговой диаграммы? (Фактические части круговой диаграммы). Части упоминаются как очки? Я хотел бы выбрать цвет, используя RGB для каждой части. Спасибо!

2 ответа2

1

Лично Блог Пельтье - мой любимый источник диаграмм Excel. Итак, взгляните на некоторые из образцов, которые он там обсуждал. Чтобы узнать больше здесь MVP

Я не думаю, что это замечательно копировать его коды здесь. Так что попробуйте учебники, указанные в материалах выше, и прокомментируйте, если у вас есть дополнительные вопросы. И вот некоторые факты, которые, как я думал, будут полезны в вашем путешествии по графику, чтобы быть гладкими и веселыми.

Чтобы быть более точным в форматировании RGB Colour срезов pie chart , вот строка кода:

Например

ActiveChart.SeriesCollection(1).Points(1).Interior.Color = RGB(0, 176, 80)

Вы можете найти номера цветов RGB из приложения MS Paint в Windows :) Еще одна статья, которая показывает некоторые цвета и соответствующие номера RGB .

Вы можете подумать, что цветовой спектр бесконечен, он должен быть достаточно хорош для раскраски вашей дополнительной многослойной pie chart . ОДНАКО не забывайте, что цветовая палитра Excel по умолчанию имеет 56 цветовых индексов. Как и Excel 2003. Так что иногда возникают проблемы при использовании файла Chart в другой версии Excel - когда вы обнаружите, что некоторые цвета отсутствуют и просто заменяются непривлекательными старыми цветами;)

Например, диаграмма, созданная в Excel 2007 и более поздних версиях, имеет богатое графическое представление цветов. Тем не менее, Excel 2003 не обеспечивает этого, но управляется (и, тем не менее, чрезвычайно эффективен). В Excel 2007 и более поздних версиях книги могут поддерживать миллионы цветов, но все еще существует базовая палитра книг, которая имеет 56 цветов.

Поэтому, когда вы сталкиваетесь с такими проблемами или читаете, чтобы справиться с ними, пожалуйста, проверьте эту статью:

0

Источник

Sub ColorPieCharts()    
    Dim iX As Integer
    Dim iY As Integer
    Dim bHasDataLabels As Boolean
    Dim bShowSeriesName As Boolean
    Dim bShowCategoryName As Boolean
    Dim bShowValue As Boolean
    Dim bShowPercentage As Boolean
    Dim bLegendKey As Boolean
    Dim bHasLeaderLines As Boolean

    SetWorkbookColors

    For iX = 1 To ActiveSheet.ChartObjects.Count
        ActiveSheet.ChartObjects(iX).Select

        'Determine DataLabel status
        On Error Resume Next
        bHasDataLabels = ActiveChart.SeriesCollection(1).HasDataLabels
        'bLegendKey = ActiveChart.SeriesCollection(1).LegendKey
        bHasLeaderLines = ActiveChart.SeriesCollection(1).HasLeaderLines
        bShowSeriesName = ActiveChart.SeriesCollection(1).DataLabels.ShowSeriesName
        bShowCategoryName = ActiveChart.SeriesCollection(1).DataLabels.ShowCategoryName
        bShowValue = ActiveChart.SeriesCollection(1).DataLabels.ShowValue
        bShowPercentage = ActiveChart.SeriesCollection(1).DataLabels.ShowPercentage
        On Error GoTo 0

        ActiveChart.ApplyDataLabels AutoText:=True, _
            HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=True, _
            ShowValue:=False, ShowPercentage:=False, ShowBubbleSize:=False

        For iY = 1 To ActiveChart.SeriesCollection(1).Points.Count
            Select Case ActiveChart.SeriesCollection(1).Points(iY).DataLabel.Text
            Case Is = "a"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 1
            Case Is = "b"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 2
            Case Is = "c"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 3
            Case Is = "d"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 4
            Case Is = "e"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 5
            Case Is = "f"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 6
            Case Else
                'Other groups get no special color
            End Select
        Next
    Next

End_Sub:
    If bHasDataLabels Then
        ActiveChart.ApplyDataLabels AutoText:=True, _
            HasLeaderLines:=True, ShowSeriesName:=bShowSeriesName, ShowCategoryName:=bShowCategoryName, _
            ShowValue:=bShowValue, ShowPercentage:=bShowPercentage, ShowBubbleSize:=False
    Else
        ActiveChart.SeriesCollection(1).HasDataLabels = False
    End If

End Sub

Sub SetWorkbookColors()
    ActiveWorkbook.Colors(1) = RGB(0, 0, 0)
    ActiveWorkbook.Colors(2) = RGB(0, 0, 100)
    ActiveWorkbook.Colors(3) = RGB(0, 100, 0)
    ActiveWorkbook.Colors(4) = RGB(0, 100, 100)
    ActiveWorkbook.Colors(5) = RGB(100, 0, 0)
    ActiveWorkbook.Colors(6) = RGB(100, 0, 100)
End Sub

Sub ResetWorkbookColors()
    ActiveWorkbook.ResetColors
End Sub

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