在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
编辑:我正在使用条形图。
答案 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设置部分将保持不变。