更改图表excel VBA中的点颜色

jam*_*mes 7 excel charts vba

我有这个图表,如果图表中的任何点超过特定限制,那么它的颜色应该改变.

在此输入图像描述


任何人都可以建议我如何在VBA中获取图表,然后应用这种条件,例如我想改变上图中最高点的颜色.任何帮助将受到高度赞赏.

Sea*_*anC 14

使用: 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
Run Code Online (Sandbox Code Playgroud)


Jon*_*ier 5

让我们采取另一种方法,不需要任何代码.

假设您的数据位于A列(序列号或时间)和B值中,从A2和B2开始,因为您的标签位于A1和B1中.我们将在图表中添加一个系列,其中包括B列中的任何偏差值.此系列将在任何偏离点前面绘制一个标记,以便原始点仍然存在,而不是重新格式化此点,新系列显示点.

在单元格C1中,输入"Deviant".

在单元格C2中,输入检测偏离点的公式,例如:

= IF(AND(B2> UPPERLIMIT,B2

如果列B超出上限和下限,则将值放入列C,否则将#N/A置于列C中,#N/A将不会产生绘制点.

复制C列中的数据,选择图表,并将特殊粘贴作为新系列.将此系列格式化为没有线条以及您想要用来指示失控点的任何明亮标记.