VBA有效RGB值会超出范围异常

时间:2015-03-02 12:27:35

标签: excel vba rgb shape outofrangeexception

我拼凑了其他解决类似问题的StackOverflow文章中的代码。

Dim light As MsoRGBType, dark As MsoRGBType
light = RGB(195, 214, 155)
dark = RGB(79, 98, 40)

ws.Shapes("Arrow1").Fill.ForeColor.RGB = dark

在最后一行代码中,我收到错误:

Runtime Error '-2147024809 (80070057)': The value is out of range.

获取形状不会抛出错误,我检查了一下。我无法确定Excel设置形状颜色的原生方式,因为奇怪的是,记录手动更改过程会产生一个空的宏。

我正在使用的形状是带箭头样式端点的标准线,以防与着色过程相关。

1 个答案:

答案 0 :(得分:0)

即使Excel将标准线识别为Shape对象,但线的某些属性也无法访问。

看作一条线未被归类为具有边框和内容的形状,Fill不会计算。使用Shape.Line代替产生所需的结果。


在代码中:

ws.Shapes("Arrow1").Line.ForeColor.RGB = dark

感谢user3964075的启发性评论!