1

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

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

我知道这种引用数据点的方式:

ActiveChart.FullSeriesCollection(2).Points(3)

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

我试过这个,但就像我认为它会给我一个类型不匹配的错误:

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

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

4

1 回答 1

2

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

在此处输入图像描述

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

结果

在此处输入图像描述

于 2014-11-04T14:32:38.923 回答