确定Excel VBA中的点的值

Joe*_*Joe 4 excel charts vba

我试图让图表中的点改变颜色,如果它们在某些值参数内(即> 1是绿色,<1是红色,其他任何是蓝色).我无法确定如何让VBA给我任何给定点的价值.

此线程中,之前已回答,答案(在其他方面非常有用)表示点(num).value将返回该点的值.但是,我收到一条错误消息,并且在其他任何地方在线或在VBA帮助中我都可以找到与此对应的方法.有没有人有这个成功?

这是代码片段给我带来的麻烦:

For Count = 1 To 7
    If Worksheets("Sheet1").ChartObjects("ChartName").Chart.SeriesCollection(1).Points(Count).Value > 1 Then
    '... do stuff
Run Code Online (Sandbox Code Playgroud)

由于数据存储在数据集中的方式,从图表中直接获取值肯定会更好.我可以使用数据集本身找出解决方法,但我宁愿避免这种情况.

Tim*_*ams 11

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

  • 遗憾的是,"Point.Value"不存在.一旦你把它写出来,这种方法就一样好了.使用此处的技术[根据值删除数据标签](http://superuser.com/questions/920162/hide-data-label-containing-series-name-if-value-is-zero/920246#920246) . (3认同)