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

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

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

我知道这种方式来引用一个数据点:

ActiveChart.FullSeriesCollection(2).Points(3) 

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

我试过这个,但是就像我以为它会抛出一个types不匹配的错误:

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

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

用一个简单的甘特图看起来像这样:

在这里输入图像说明

您可以通过首先返回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 

结果

在这里输入图像说明