8

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

在此处输入图像描述


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

4

2 回答 2

15

使用: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
于 2012-06-21T15:42:18.120 回答
5

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

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

在单元格 C1 中,输入“异常”。

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

=IF(AND(B2>上限,B2

如果 B 列超过上限和下限,这会将值放入 C 列,否则将 #N/A 放入 C 列,#N/A 将不会产生绘图点。

复制 C 列中的数据,选择图表,然后选择性粘贴为新系列。将此系列格式化为没有线条和任何你想用来指示失控点的明显标记。

于 2012-06-30T21:42:09.447 回答