我有这个图表,如果图表中的任何一点超过特定限制,那么它的颜色应该改变。
任何人都可以建议我如何在VBA中获取图表然后应用这种条件,例如我想要更改上图中最高点的颜色。任何帮助都将受到高度赞赏。
答案 0 :(得分:13)
使用:ActiveWorkbook.Sheets("Sheet1").ChartObjects("Chart1").Chart.SeriesCollection(1)
每个点的颜色为.Points(PointNumber).Interior.Color
您必须循环的点数是.Points.Count
每个点的值为.Points(PointNumber).Value
标记本身的颜色(仅适用于直线,散点图和雷达图):
.Points(PointNumber).MarkerBackgroundColor = RGB(0,255,0) ' green
.Points(PointNumber).MarkerForegroundColor = RGB(255,0,0) ' red
.Points(PointNumber).MarkerStyle = xlMarkerStyleCircle ' change the shape
答案 1 :(得分:5)
让我们采取另一种方法,不需要任何代码。
假设您的数据位于A列(序列号或时间)和B值中,从A2和B2开始,因为您的标签位于A1和B1中。我们将在图表中添加一个系列,其中包括B列中的任何偏差值。此系列将在任何偏离点前面绘制一个标记,以便原始点仍然存在,而不是重新格式化此点,新系列显示点。
在单元格C1中,输入“Deviant”。
在单元格C2中,输入检测偏离点的公式,例如:
= IF(AND(B2> UPPERLIMIT,B2
如果列B超出上限和下限,则将值放入列C,否则将#N / A置于列C中,#N / A将不会产生绘制点。
复制C列中的数据,选择图表,并将特殊粘贴作为新系列。将此系列格式化为没有线条以及要用于指示失控点的任何明显标记。