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
结果