Excel VBA - 按名称而不是索引号引用参考图表数据

时间:2014-11-04 13:21:38

标签: excel vba excel-vba excel-charts

我有一个基本的甘特图,其中有一个表作为其数据源,但是,当在工作表的某处选择了另一个名称时,该表将被清空并重新填充属于所选名称的数据。

每个名称都有一个数据点相同,我希望它的栏有另一种颜色。

我知道引用数据点的方法:

ActiveChart.FullSeriesCollection(2).Points(3)

但是这在我的例子中不起作用,因为数据点的数量不断变化,同样的事情并不总是在第三位。

我尝试了这个,但是就像我认为它会引发类型不匹配错误:

ActiveChart.FullSeriesCollection(2).Points("SomeString")

是否可以在VBA中按名称引用数据点?

1 个答案:

答案 0 :(得分:2)

With是一个简单的甘特图,如下所示:

enter image description here

您可以通过首先返回XValue,与您要查找的名称匹配来更改B点的颜色,然后设置相应的点颜色:

Option Explicit

Sub ChangePointBColor()
    Dim x As Integer
    Dim varValues As Variant
    Dim cht As Chart
    Set cht = Worksheets("Sheet1").ChartObjects("Chart 3").Chart

    With cht.SeriesCollection(2) 
        varValues = .XValues

        For x = LBound(varValues) To UBound(varValues)
            If varValues(x) = "B" Then
                .Points(x).Interior.Color = RGB(140, 125, 230)
            End If
        Next x
    End With
End Sub

<强>结果

enter image description here