根据单元格值修改形状颜色

我正在寻找修改基于链接单元格值的形状颜色…

形状是“testing”和单元格值“X11”。 我收到对象不支持此属性或方法的错误…

Sub CChange() Dim ws As Worksheet Set ws = ThisWorkbook.ActiveSheet With ws.Shapes.Range(Array("test")) If .Range("X11") = 1 Then .Fill.ForeColor.RGB = RGB(18, 38, 43) ElseIf .Range("X11") = 2 Then .Fill.ForeColor.RGB = 0 End If End With End Sub 

改变你的代码,你的声明是错误的。 您没有使用工作表,因此您无法使用.Range访问范围。

 Sub CChange() Dim ws As Worksheet Set ws = ThisWorkbook.ActiveSheet With ws.Shapes.Range(Array("test")) If ws.Range("X11") = 1 Then .Fill.ForeColor.RGB = RGB(18, 38, 43) ElseIf ws.Range("X11") = 2 Then .Fill.ForeColor.RGB = 0 End If End With End Sub