代码之家  ›  专栏  ›  技术社区  ›  Ignas Limanauskas

Changing.Interior.ColorIndex不起作用

  •  1
  • Ignas Limanauskas  · 技术社区  · 17 年前

    在Excel2003中,当我将series.interior.colorindex更改为需要的值时,它没有任何效果。只有当我先手动更改颜色,然后运行宏时,它才有效果。显然,这会触发一些更新机制。有人对此有解释吗?有没有办法在图表中触发这个?…即确保颜色更改生效。

    此外,当我单步执行代码并观察colorndex时,即使在赋值之后,它也不会改变。这是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 回复  |  直到 13 年前
        1
  •  1
  •   JRS    17 年前

    也可以尝试设置边框。

    .Interior.ColorIndex = 4
    .Border.ColorIndex = 4
    .Border.Weight = xlMedium
    
        2
  •  1
  •   James Eichele Bernard Igiri    17 年前

    编辑: 回应对原始问题的评论和编辑:

    我设计了一个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”的酒吧都属于“蜂蜜”系列。

    当我在这个图表上运行您的代码时,条形图的颜色会如预期的那样改变。你能告诉我我的设置和你的不同吗?我会设法弄清楚的,但我需要更多的信息:)

        3
  •  0
  •   Anonymous Type    16 年前

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

        4
  •  0
  •   Tofeeq Ahmad    13 年前

    我也有同样的问题,使用Excel2007和2003。

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

    推荐文章