【问题标题】:Set RGB color from a value in a cell in Excel根据 Excel 单元格中的值设置 RGB 颜色
【发布时间】:2017-11-11 03:46:14
【问题描述】:

我有一个可以为我绘制大量图表的宏。 我想做的是动态更改color 的Data series。我使用RGB 调色板和函数.ForeColor.RGB。 当我直接使用它.ForeColor.RGB = RGB(88, 88, 88) - 一切正常。但是当我尝试从cell .ForeColor.RGB = Sheets(1).Cells(1, 1) 中获取color 时,我收到了一个错误Type missmatch。 在Cell(1,1) 我有值:RGB(0, 0, 0)。

如何从cell 中为Data series 选择color?

下面的宏和 Excel 窗口。

Sub Macro1()

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.FullSeriesCollection(1).Select

MsgBox Sheets(1).Cells(1, 1)

With Selection.Format.Fill
    .Visible = msoTrue
    .ForeColor.RGB = Sheets(1).Cells(1, 1)
    '.ForeColor.RGB = RGB(88, 88, 88)
    .Transparency = 0
    .Solid
End With

End Sub

【问题讨论】:

    标签: vba excel colors rgb


    【解决方案1】:

    您不能将函数名称作为String 值传递。 RGB() 是 Function

    试试这个。这将从 3 个不同的单元格中获取值,例如 D4、E4 和 F4。

    .ForeColor.RGB = RGB( _
                         Sheets(1).Cells(4, 4), _
                         Sheets(1).Cells(4, 5), _
                         Sheets(1).Cells(4, 6) _
                         )
    

    【讨论】:

    • Way1 看起来更方便,但它会导致错误:Argument not optional。 Way2 工作正常!
    • 是的,我的错。道歉。更新了帖子
    【解决方案2】:

    试试这个:

    '/* have to add this line */
    ret = Split(Replace(Replace(Sheets(1).Cells(1, 1), "RGB(", ""), ")", ""), ",")
    .ForeColor.RGB = RGB(ret(0),ret(1),ret(2))
    

    【讨论】:

    • ++ 另一个不错的方法:)
    猜你喜欢
    • 2019-03-20
    • 2017-06-05
    • 2018-08-10
    • 2013-01-03
    • 2010-11-28
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多