嗨,刚刚开始使用 VBA excel - 有没有办法根据不直接输入饼图的值对饼图的段进行着色?我的示例数据如下所示:
Steps % Complete Status
Step1 100% B (Blue)
Step2 50% R (Red)
Step3 30% G (Green)
Step4 15% A (Yellow)
饼图将仅使用前两列(步骤和完成百分比)生成。但我希望饼图的每个段都根据“状态”列进行着色。
首先使用 vba 设置条件格式,根据状态列所代表的颜色(如果状态为“R”,则 %Complete 颜色为红色)为每个图表输入单元格(% 完成列)着色 - 下面的示例
** 注意 - 常规条件格式化将不起作用
Dim status_value As Range
Set status_value = Sheets("Sheet 1").Cells(20, 3) -
If mycell.Value = "B" Then
mycell2.Interior.color = RGB(0, 112, 192) 'Blue
ElseIf mycell.Value = "R" Then
mycell2.Interior.color = RGB(255, 0, 0) ' Red
ElseIf mycell.Value = "A" Then
mycell2.Interior.color = RGB(255, 192, 0) 'Amber
ElseIf mycell.Value = "G" Then
mycell2.Interior.color = RGB(0, 176, 80) ' Green
ElseIf mycell.Value = "NA" Then
mycell2.Interior.color = RGB(166, 166, 166) 'Grey
End If
下面的代码将根据提供图表值的单元格的内部颜色为图表着色
Sub ColorCharts()
For Each ch In ActiveSheet.ChartObjects
For Each ser In ch.Chart.SeriesCollection
s = Split(ser.Formula, ",")
For i = 1 To UBound(ser.Values)
ser.Points(i).Interior.color = Range(s(2)).Cells(i).Interior.color
Next i
Next ser
Next ch
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句