更改.Interior.ColorIndex无效

时间:2009-02-25 15:51:22

标签: excel vba excel-2003

在Excel 2003中,当我将Series.Interior.ColorIndex更改为我需要的值时,它没有任何效果。仅当我第一次手动更改颜色然后运行宏时它才有效。显然这会触发一些更新机制。有没有人对此有解释?有没有办法在图表中以某种方式触发这个?... I.e。确保颜色变化生效。

此外,当我单步执行代码并观察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

编辑:我正在使用条形图。

4 个答案:

答案 0 :(得分:1)

尝试设置边框。

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

答案 1 :(得分: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”的所有条形都属于“Milk”系列,则标有“C”的所有条形都属于“Cookies”系列,标有“H”的所有条形条都属于到“蜂蜜”系列。

当我在此图表上运行您的代码时,条形颜色会按预期更改。你能告诉我我的设置和你的设置有什么不同吗?我会试着解决它,但我需要更多信息:)

答案 2 :(得分:0)

可能是Excel中的一个错误,您使用的是哪个版本的Excel? 确保你提供服务包/补丁,然后再试一次以重现问题。

答案 3 :(得分:0)

我遇到了同样的问题,使用excel 2007和2003。

但我通过在2003年打开工作簿来修复它,然后通过右键单击(等)并将其填充颜色设置为自动来格式化数据系列。然后当我运行我的宏时,colorindex设置部分将保持不变。