VBA 有效的 RGB 值抛出超出范围异常
VBA valid RGB value throws out of range exception
我从解决了类似问题的其他 Whosebug 文章中拼凑了以下代码。
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 对象,Shape 的某些属性对于线来说是不可访问的。
由于线条不属于具有边框和内容的形状,因此不计算填充。使用 Shape.Line
会产生所需的结果。
在代码中:
ws.Shapes("Arrow1").Line.ForeColor.RGB = dark
感谢 user3964075 的启发性评论!
我从解决了类似问题的其他 Whosebug 文章中拼凑了以下代码。
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 对象,Shape 的某些属性对于线来说是不可访问的。
由于线条不属于具有边框和内容的形状,因此不计算填充。使用 Shape.Line
会产生所需的结果。
在代码中:
ws.Shapes("Arrow1").Line.ForeColor.RGB = dark
感谢 user3964075 的启发性评论!