我试图让图表中的点改变颜色,如果它们在某些值参数内(即> 1是绿色,< 1是红色,其他任何东西是蓝色)。我无法确定如何让VBA给我任何给定点的价值。
在之前回答的this thread中,答案(在其他方面非常有用)表明点(num).value将返回该点的值。但是,我收到一条错误消息,无论是在线还是在VBA帮助中我都找不到与此相对应的方法。有没有人对此有任何成功?
以下是给我带来麻烦的代码片段:
For Count = 1 To 7
If Worksheets("Sheet1").ChartObjects("ChartName").Chart.SeriesCollection(1).Points(Count).Value > 1 Then
'... do stuff
由于数据存储在数据集中的方式,从图表中直接获取值肯定会更好。我可以使用数据集本身找出解决方法,但我宁愿避免这种情况。
答案 0 :(得分:10)
Sub Tester()
Dim cht As Chart, s As Series, p As Point
Dim vals, x As Integer
Set cht = ActiveSheet.ChartObjects(1).Chart
Set s = cht.SeriesCollection(1)
vals = s.Values
For x = LBound(vals) To UBound(vals)
If vals(x) > 10 Then
With s.Points(x)
.MarkerBackgroundColor = RGB(255, 0, 0)
.MarkerForegroundColor = RGB(255, 0, 0)
End With
End If
Next x
End Sub