通过另一个矩形的点击更改矩形的颜色excel vba

时间:2017-10-12 10:44:00

标签: vba excel-vba excel

我有10个红色矩形和另一个蓝色 - UP - 应该控制它们的颜色。矩形编号1始终为绿色。如果我单击UP矩形,矩形2应该将颜色更改为绿色,如果我再次单击UP,矩形3应该将颜色更改为绿色,如果我单击9次,则所有矩形应为绿色。我制作的代码只有一步。欢迎任何帮助。谢谢。

public i as long
Sub test()
Dim x As Long, y As Long
i = 2
    ActiveSheet.Shapes.Range(Array("Rectangle " & i)).Select
    Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 240, 0)
i = i + 1

   Debug.Print i

End Sub

enter image description here

1 个答案:

答案 0 :(得分:1)

简单地For Loop将完成这项工作。

Sub test()
    Dim sh As Shape
    Dim i As Long
    For i = 2 To 10
        On Error Resume Next
        Set sh = ActiveSheet.Shapes("Rectangle " & i)
        On Error GoTo 0

        If Not sh Is Nothing Then
            If sh.Fill.ForeColor.RGB <> RGB(0, 240, 0) Then
                sh.Fill.ForeColor.RGB = RGB(0, 240, 0)
                Exit For
            End If
        End If
    Next
End Sub

Sub Test2()
    Dim sh As Shape
    Dim v As Variant

    For Each v In Array("Rectangle 2", "Rectangle 3", "Rectangle 4", "Rectangle 5", "Rectangle 6", "Rectangle 7", "Rectangle 8", "Rectangle 9", "Rectangle 10")
        On Error Resume Next
        Set sh = ActiveSheet.Shapes(v)
        On Error GoTo 0

        If Not sh Is Nothing Then
            If sh.Fill.ForeColor.RGB <> RGB(0, 240, 0) Then
                sh.Fill.ForeColor.RGB = RGB(0, 240, 0)
                Exit For
            End If
        End If
    Next
End Sub