【发布时间】:2013-07-07 18:14:52
【问题描述】:
我正在寻找一种基于水平类别轴的值来格式化饼图中切片颜色的方法。
例如,我有一个带有以下数据标签的饼图(来自类别轴标签):
- 苹果
- 香蕉
- 橙子
- 葡萄
每种水果的总和为 100%。
在饼图中,代表苹果的切片始终为绿色。香蕉总是黄色的,等等。每个月我都必须更新饼图,每个月苹果、香蕉、橙子和葡萄的值都会发生变化。但是,切片颜色不会改变。
我的问题是 - 有没有办法每月更新饼图并保持与每种水果相关的颜色?还要记住,有些月份可能会有额外的水果,有些月份可能会省略一些水果。
我尝试根据每个切片的Points(x) 值更改它,但是由于系列的数量可能每个月都在变化,所以它不起作用。正如您从下面看到的,我已经设法根据每个切片的 Points(x) 值对其进行更改,但我想知道是否可以包含一个 IF 循环来表示类似...IF category axis = "Apples", Selection.Format.Fill ... (fill slice with RGB(X, X, X)) 等的内容。
Sub test()
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Points(2).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 144, 44)
.Transparency = 0
.Solid
End With
ActiveChart.SeriesCollection(1).Points(3).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(112, 48, 30)
.Transparency = 0
.Solid
End With
ActiveChart.SeriesCollection(1).Points(6).Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(112, 48, 160)
.Transparency = 0
.Solid
End With
End Sub
如果有人能提供帮助,我将不胜感激。
【问题讨论】:
-
发布您尝试过但不起作用的代码 - 对我们来说,修复现有代码比从头开始重新创建整个代码更容易。
标签: excel vba format conditional-statements pie-chart