【问题标题】:Set Color of Chart lines and markers according to the color of other lines and markers in vba根据vba中其他线条和标记的颜色设置图表线条和标记的颜色
【发布时间】:2016-09-15 13:13:14
【问题描述】:

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

比方说,我的表是这样的(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 。所以我不明白为什么这些值以及为什么它们对所有行都相同?

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

谢谢!

【问题讨论】:

    标签: excel vba charts colors


    【解决方案1】:

    这行应该:

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

    改为:

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

    【讨论】:

    • 是的,我也试过了,但它仍然是黑色,所以它不起作用。这很奇怪!我不知道该怎么做,我在互联网的某个地方看到这是 vba 中的一个错误,但我仍在等待一种方法来做到这一点!谢谢!
    • 当我使用 MsgBox 打印 src.Format.Line.ForeColor.RGB 和 src.Format.Fill.ForeColor.RGB 的值时,我分别得到 16777215 和 0,这是无法理解的!
    猜你喜欢
    • 2015-06-22
    • 2016-10-19
    • 2013-06-14
    • 2017-06-18
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2017-07-15
    相关资源
    最近更新 更多