我有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
答案 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