根据其标签或值更改箭头颜色

时间:2019-06-19 04:58:20

标签: excel vba

如何根据箭头的标签更改其颜色(转换为整数);说箭头的值是否<50;然后将箭头的颜色更改为绿色?

我遇到了运行时错误438:

  

对象不支持此属性或方法(第3行)。

Sub ArrowColour()
Dim nsize As Integer
nsize = CInt(ActiveSheet.Shapes.Range(Array("Left Arrow 1")).Value)
With ActiveSheet.Shapes.Range(Array("Left Arrow 1")).Fill
    If nsize < 50 Then
    .ForeColor.RGB = RGB(0, 176, 80)
    Else
    .ForeColor.RGB = RGB(255, 0, 0)
    End If
End With
End Sub

2 个答案:

答案 0 :(得分:2)

形状没有Value属性。

尝试一下:

Sub ArrowColour()     
    With ActiveSheet.Shapes("Left Arrow 1")
        .ForeColor.RGB = IIf(CInt(.TextFrame.Characters.Text)<50, _
                             RGB(0, 176, 80), RGB(255, 0, 0))    
    End With
End Sub

答案 1 :(得分:0)

我找到了答案:

    Sub Test()
    Dim shp As Shape
    Dim sTemp As String
    Set shp = ActiveSheet.Shapes("RightArrow")
    sTemp = shp.TextFrame.Characters.Text
    If CInt(sTemp) > 400 Then
        shp.Fill.ForeColor.RGB = RGB(255, 0, 0)
    End If
    End Sub