1

在 Excel 2003 中,当我将 Series.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

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

4

4 回答 4

1

尝试设置边框。

.Interior.ColorIndex = 4
.Border.ColorIndex = 4
.Border.Weight = xlMedium
于 2009-02-25T16:40:16.787 回答
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”的条都属于“蜜”系列。

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

于 2009-02-25T16:40:29.393 回答
0

可能是 Excel 中的一个错误,您使用的是哪个版本的 Excel?确保您对其进行服务包/修补,然后再次尝试重现该问题。

于 2009-08-12T04:24:13.813 回答
0

我有同样的问题,使用 excel 2007 和 2003。

But i fixed it by opening the workbook in 2003, then formatting the data series by right-clicking (etc) and setting it's fill color to Automatic. then when i ran my macro, the colorindex setting part would take hold.

于 2009-10-14T18:17:41.323 回答