有人能举个例子说明如何更改饼图的颜色吗?(实际的饼图部分)。这些部分被称为点?我想使用 RGB 为每个部分选择一种颜色。谢谢!
答案1
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
答案2
亲自Peltier 的图表博客是我最喜欢的 Excel 图表源。因此,请查看他在那里讨论的一些示例。要了解更多信息,请访问 MVP
我认为在这里复制他的代码并不是一件好事。因此,请尝试上述材料中所述的教程,如果您有其他问题,请发表评论。以下是我认为对您有帮助的一些事实绘制旅程变得顺利又有趣。
为了具体说明切片RGB Colour
的格式pie chart
,下面是代码行:
例如
ActiveChart.SeriesCollection(1).Points(1).Interior.Color = RGB(0, 176, 80)
您可能会RGB
从 Windows 中的应用程序中找到颜色编号MS Paint
:) 另外,这里有一篇文章显示了一些颜色和相应的RGB
编号。
由于色谱是无限的,因此它应该足以为您的额外多片 pie chart
,你可能会想..然而不要忘记 Excel 默认调色板有 56 种颜色索引。就像 Excel 2003 一样。因此,有时在不同版本的 Excel 中使用图表文件时会出现问题 - 您会发现某些颜色缺失,并被不吸引人的旧颜色所取代 ;)
例如,在 Excel 2007 及更高版本中创建的图表为用户提供了丰富的图形和色彩体验。然而,Excel 2003 不提供这些功能,但易于管理(而且性能极佳)。在 Excel 2007 及更高版本中,工作簿可以支持数百万种颜色,但仍然有一个具有 56 种颜色的底层工作簿调色板。
因此,当您遇到此类问题或需要解决此类问题时,请查看这篇文章: