根据vba

时间:2016-05-18 20:56:00

标签: excel vba charts colors

我正在尝试根据奇数行和颜色的颜色设置偶数行和标记的颜色。

让我们说,我的表看起来像这样(speed1,performance1,speed2,performance2,.....) 当我绘制折线图时它只是给每一行提供不同的颜色。在我的情况下,我想给每两列(速度和性能)一个颜色。因此,为此我每次都尝试获取一条线的颜色和标记的颜色,然后将这些颜色分配给下一行(奇数列到偶数列的颜色)。

这是我的代码:

Sub ChangeColors()

 Dim cht As Chart
 Dim ser As Series

 Set cht = ActiveChart
For i = 1 To cht.SeriesCollection.Count
 If (i Mod 2) = 0 Then
 Set dst = cht.SeriesCollection(i)
 Set src = cht.SeriesCollection(i - 1)
 dst.Format.Line.Visible = msoFalse
 dst.Format.Line.Visible = msoTrue
 dst.Format.Line.ForeColor.RGB = src.Format.Line.ForeColor.RGB
 dst.Format.Fill.ForeColor.RGB = src.Format.Fill.ForeColor.RGB
 End If
Next i
End Sub

问题是最后所有偶数线变黑。但是,当我尝试选择RGB颜色(例如,RGB(255,0,0))时,将它分配给偶数行,它们都变成红色,因此它可以工作。

更新 当我使用MsgBox打印src.Format.Line.ForeColor.RGB和src.Format.Fill.ForeColor.RGB的值时,我得到的所有行分别为16777215和0。所以我不明白为什么这些值以及为什么它们对于所有线都是一样的?

有谁知道我的代码有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

这一行:

dst.Format.Line.ForeColor.RGB = src.Format.Fill.ForeColor.RGB

取而代之的是:

dst.Format.Line.ForeColor.RGB = src.Format.Line.ForeColor.RGB