我拼凑了其他解决类似问题的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设置形状颜色的原生方式,因为奇怪的是,记录手动更改过程会产生一个空的宏。
我正在使用的形状是带箭头样式端点的标准线,以防与着色过程相关。
答案 0 :(得分:0)
即使Excel将标准线识别为Shape对象,但线的某些属性也无法访问。
看作一条线未被归类为具有边框和内容的形状,Fill不会计算。使用Shape.Line
代替产生所需的结果。
在代码中:
ws.Shapes("Arrow1").Line.ForeColor.RGB = dark
感谢user3964075的启发性评论!