2009-02-25 128 views
1

在Excel 2003中,當我將Series.Interior.ColorIndex更改爲我需要的值時,它沒有任何作用。它只有當我第一次手動改變顏色然後運行宏時纔有效果。顯然這會觸發一些更新機制。有沒有人對此有過解釋?有沒有辦法在圖表中以某種方式觸發它?確保顏色更改生效。更改.Interior.ColorIndex沒有效果

另外,當我遍歷代碼並觀看ColorIndex時,即使賦值後也不會改變。這是Excel中的許多錯誤之一嗎?

的代碼看起來是這樣的:

Sub DoStuff() 
    Dim j As Long 
    For j = 1 To ActiveChart.SeriesCollection.Count 
     With ActiveChart.SeriesCollection(j) 
      Select Case ActiveChart.SeriesCollection(j).Name 
       Case "Milk" 
        .Interior.ColorIndex = 4 
       Case "Cookies" 
        .Interior.ColorIndex = 28 
       Case "Honey" 
        .Interior.ColorIndex = 26 
      End Select 
     End With 
    Next j 
End Sub 

編輯:我用柱狀圖的工作。

+0

我已經發布了我使用的示例excel數據(請參閱下面的答案)。你能提供類似的東西來說明你看到的問題嗎? – 2009-02-26 21:19:21

回答

1

嘗試設置邊框。

.Interior.ColorIndex = 4 
.Border.ColorIndex = 4 
.Border.Weight = xlMedium 
+0

感謝您的建議,但沒有效果。只有邊界發生了變化。 – 2009-02-26 00:11:50

+0

通過在更改顏色之前更改填充樣式,然後將其設置回原始來解決我的問題。太棒了!.... – 2009-03-17 03:17:04

1

編輯:在迴應評論&編輯原題:

我制定了一個例子Excel文件,我能得到您的代碼工作。這裏是我的數據是如何佈局:

| A | B | C | D | 
-------------------------------- 
1 | Milk | 3 | 1 | 4 | 
2 | Cookies | 1 | 5 | 9 | 
3 | Honey | 2 | 6 | 5 | 

,柱狀圖看起來是這樣的:

      ._. 
          |C| 
       ._.._.  |C|._. 
._. ._.  |C||H| ._.|C||H| 
|M|._.|H| ._.|C||H| |M||C||H| 
|M||C||H| |M||C||H| |M||C||H| 
--------------------------------- 
    1   2   3 

所有上述圖中標記爲「M」的酒吧屬於「牛奶「系列中,標爲」C「的所有小節屬於」曲奇「系列,標爲」H「的所有小節屬於」蜂蜜「系列。

當我在此圖表上運行您的代碼時,欄顏色會按預期更改。你能告訴我我的裝置和你的裝置有什麼不同嗎?我會盡力弄清楚,但我需要更多信息:)

0

可能是Excel中的一個錯誤,您使用的是哪個版本的Excel? 請確保你的服務包/補丁,並再次嘗試重現該問題。

0

我有同樣的問題,使用Excel 2007年和2003年

但我固定它在2003年打開的工作簿,然後格式化通過右鍵單擊(ETC)的數據系列,並設置它的填充顏色爲自動。那麼當我運行我的宏時,colorindex設置部分就會佔據上風。