在图表excel VBA中更改点颜色

在图表excel VBA中更改点颜色,excel,vba,charts,Excel,Vba,Charts,我有一张图表,如果图表中的任何一点超过了特定的限制,那么它的颜色就会改变。 谁能建议我如何在VBA中获取图表,然后应用这种条件,例如我想更改上图中最高点的颜色。非常感谢您的帮助。使用:ActiveWorkbook.Sheets(“Sheet1”).ChartObjects(“Chart1”).Chart.SeriesCollection(1) 每个点的颜色为.Points(PointNumber).Interior.Color 您必须循环的点数为.points.Count 每个点的值都是.P

我有一张图表,如果图表中的任何一点超过了特定的限制,那么它的颜色就会改变。



谁能建议我如何在VBA中获取图表,然后应用这种条件,例如我想更改上图中最高点的颜色。非常感谢您的帮助。

使用:
ActiveWorkbook.Sheets(“Sheet1”).ChartObjects(“Chart1”).Chart.SeriesCollection(1)

每个点的颜色为
.Points(PointNumber).Interior.Color

您必须循环的点数为
.points.Count

每个点的值都是
.Points(PointNumber).value

标记本身的颜色(仅适用于直线图、散点图和雷达图):


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

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

在单元格C1中,输入“偏差”

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

=如果(和(B2>上限,B2 如果B列超过上限和下限,则将值放入C列,否则将#N/A放入C列,#N/A不会生成打印点


复制C列中的数据,选择图表,并将“特殊”粘贴为一个新系列。将此系列设置为没有线条,也没有任何您想要用来指示失控点的醒目标记。

谢谢您的帮助。但是,您能否详细说明。系列收集(1)的目的这里?以及如何连接这些示例代码以实现我的目标?我是VBA新手,因此没有正确地获取它。
seriescollection(1)
是制作图形时使用的第一组数据点的列表。循环遍历这些点,检查值,并更改颜色(如果在您的criteriaActiveWorkbook.Sheets(“LDL-C”).ChartObjects中)(“Chart 1047”).Chart.SeriesCollection(1).Points(1).Interior.Color=RGB(20,20,20)您认为这有什么问题吗?它对我不起作用??让我们记录一个改变点颜色的宏??可能是优秀命题的重复,这帮助我制作了“min”、“max”、“first”和“last”的标记,就像火花线一样"折线图中的数据点。有一行数据点显示在折线图中,但没有标记,还有第二行数据点,根据公式引用第一、最后、最小和最大值,但显示所有其他单元格的#N/a错误代码。这些数据不带线,但带有标记,因此两行都是可用的重新调整了。效果很好。
.Points(PointNumber).MarkerBackgroundColor = RGB(0,255,0)    ' green
.Points(PointNumber).MarkerForegroundColor = RGB(255,0,0)    ' red
.Points(PointNumber).MarkerStyle = xlMarkerStyleCircle ' change the shape