2012-03-28 76 views
2

我很新的VBA,並創建了一個基於Excel 2007中我遇到一些麻煩的聲明,如果我希望能夠找到的值的宏錄製的圖表FALSE在一個小區範圍並改變標記的在我的圖表的顏色。我沒有得到理想的結果,但所有的標記都變成了其他情況。下面是引用片段:如果與find沒有發揮預期

Dim rSeries As Range 
Dim MyChart As Chart 

Set rSeries = Sheets("Data").Range("I24:I39") 
Set MyChart = Sheets("Sheet1").ChartObjects("PT_Schedule").Chart 
With MyChart 
    If rSeries.Find("FALSE") Then 
     .SeriesCollection(8).MarkerForegroundColor = RGB(255, 255, 0) 
     .SeriesCollection(8).MarkerBackgroundColor = RGB(255, 255, 0) 
    Else 
     .SeriesCollection(8).MarkerForegroundColor = RGB(255, 0, 0) 
     .SeriesCollection(8).MarkerBackgroundColor = RGB(255, 0, 0) 
    End If 
End With 

任何一個可以解釋爲什麼FALSE不符合條件的,哪些應的代碼更改爲任意單元格的值?

在此先感謝!

+0

這裏是一個鏈接'siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba /'這將指導你如何使用'.Find' :)如果你還停留然後我們會從那裏:) – 2012-03-28 18:58:45

+0

我明白現在爲什麼整個集合正在發生變化。我想我明白.Find功能。我用你提供的確定(一些調整後),我的錯誤是不是在找鏈接,但在.SeriesCollection()代替。這就是爲什麼整個系列改變而不是單一點。有沒有辦法在集合中識別單個點並修改圖表中的着色? – user1299006 2012-03-29 22:19:49

回答

0

方法find()方法返回一個範圍,而不是一個布爾值。 您應該驗證是否返回的範圍不爲空(在VBA中是Nothing)

If Not rSeries.Find("FALSE") Is Nothing Then