Excel VBA有效RGB值抛出超出范围异常
我从解决类似问题的其他StackOverflow文章中拼凑了以下代码Excel VBA有效RGB值抛出超出范围异常,excel,vba,rgb,shape,outofrangeexception,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
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设置形状颜色的原生方式,因为奇怪的是,记录手动更改过程会产生一个空宏
我正在使用的形状是带有箭头样式端点的标准线,以防与着色过程相关。即使Excel将标准线识别为形状对象,但形状的某些属性对于线是不可访问的 因为直线没有被归类为具有边框和内容的形状,所以填充不会计算。相反,使用Shape.Line可以得到所需的结果 代码:
ws.Shapes("Arrow1").Line.ForeColor.RGB = dark
感谢user3964075提供的启发性评论 试试ws.ShapesArrow1.Line.ForeColor.RGB=dark成功了,谢谢!你可能应该允许@user3964075回答这个问题,并为此获得荣誉…@DavidZemens如果他选择这样做,我当然会收回我的答案。当时我认为,明智的做法是将解决方案保存在某个地方,以便在他不亲自编写的情况下,可以随时访问该解决方案。