您刚刚开始使用VBA excel - 有没有办法根据不直接输入饼图的值为饼图分段? 我的示例数据如下所示:
Steps % Complete Status
Step1 100% B (Blue)
Step2 50% R (Red)
Step3 30% G (Green)
Step4 15% A (Yellow)
仅使用前两列(步骤和完成百分比)生成饼图。但我希望饼图的每个段都根据状态列进行着色。
答案 0 :(得分:1)
首先使用vba设置条件格式,根据状态列所代表的颜色为每个图表输入单元格(%完整列)着色(如果状态" R"然后%完成颜色为红色) - 以下样本
**注意 - 常规条件格式不起作用
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