将颜色应用于 Excel 中的饼图切片

问题描述 投票:0回答:1

我想在 Excel 中创建一个包含 33 个部分的饼图。

我想要每件,取决于单元格的值
绿色(没问题)
红色(需要)
黄色(机会)

例如,
标识符 # 结果
1 没问题
2 机会
3 需要
...
33

我创建了一个常规饼图,但单独更改每个切片上的颜色很乏味。

我希望切片的颜色能够自动化。

excel vba visualization excel-2007 pie-chart
1个回答
0
投票

饼图可能不是最佳选择。清楚地标记 33 片并不容易。水平条形图中的标签效果会更好,并且条形图可能会占用更少的空间并且仍然清晰易读。

下面的代码适用于任一图表类型。

Sub ColorByValue()
  If Not ActiveChart Is Nothing Then
    With ActiveChart
      Dim srs As Series
      Set srs = .SeriesCollection(1)
      Dim vals As Variant
      vals = srs.Values
      Dim iPt As Long
      For iPt = 1 To UBound(vals)
        Select Case vals(iPt)
          ' select your cutoff values and colors
          Case Is >= 8
            srs.Points(iPt).Format.Fill.ForeColor.RGB = 5287936 ' vbGreen
          Case Is <= 3
            srs.Points(iPt).Format.Fill.ForeColor.RGB = vbRed
          Case Else
            srs.Points(iPt).Format.Fill.ForeColor.RGB = 49407 ' vbYellow
        End Select
      Next
    End With
  Else
    MsgBox "Select a chart to format!", vbExclamation, "No Active Chart"
  End If
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.