我有这张图表,如果图表中的任何点超过特定限制,那么它的颜色应该会改变。
谁能建议我如何在 VBA 中获取图表,然后应用这种条件,例如我想更改上图中最高点的颜色。任何帮助将不胜感激。
使用: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
让我们采用另一种方法,它不需要任何代码。
假设您的数据位于 A 列(序列号或时间)和 B 值中,从 A2 和 B2 开始,因为您的标签位于 A1 和 B1 中。我们将在图表中添加一个系列,其中包含 B 列中的任何异常值。该系列将在任何异常点前面绘制一个标记,因此原始点仍然存在,并且新系列不会重新格式化该点,而是显示一个观点。
在单元格 C1 中,输入“异常”。
在单元格 C2 中,输入检测异常点的公式,例如:
=IF(AND(B2>上限,B2
如果 B 列超过上限和下限,这会将值放入 C 列,否则将 #N/A 放入 C 列,#N/A 将不会产生绘图点。
复制 C 列中的数据,选择图表,然后选择性粘贴为新系列。将此系列格式化为没有线条和任何你想用来指示失控点的明显标记。