2014-11-04 45 views
1

我有一個基本甘特圖,其中有一個表作爲其數據源,但是,當在表的某個位置選擇另一個名稱時,此表將被清空並重新填充屬於所選名稱的數據。Excel VBA - 參考圖表數據點的名稱而不是索引號

對於每個名稱都有一個相同的數據點,我希望它的欄有另一種顏色。

我知道這種方式來引用一個數據點:

ActiveChart.FullSeriesCollection(2).Points(3) 

但在我的例子不會工作,因爲數據點的數量在不斷變化,同樣的事情並不總是在第三的位置。

我想這一點,但像我以爲它拋出我一個類型不匹配錯誤:

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

是否有可能通過其在VBA名稱引用一個數據點?

回答

2

的是一個簡單的甘特圖,看起來像這樣:

enter image description here

您可以先返回x值,對陣您要查找的名稱改變的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

+0

+1很好的解決方法。我現在會嘗試這個;) – 2014-11-04 14:34:20

+0

我使用選項明確的,我應該定義varValues數組作爲variant或字符串?我猜字符串,但只是爲了確保 – 2014-11-04 14:38:13

+0

我很懶;-)我更新使用'Option Explicit' – 2014-11-04 14:40:41

相關問題