根据单元格值闪烁形状

时间:2018-01-19 09:43:53

标签: excel vba excel-vba

我正在尝试创建一个我将拥有形状的excel文件。 这种形状我试图连接到单元格值。

因此,当我点击按钮开始时,excel将通过单元格值,单元格值为X,我希望形状X闪烁红色,如果单元格值为Y,则单元格将为绿色。

现在我编写了代码,用于遍历一列中的单元格并将其颜色更改为绿色和红色:

Sub test()

Dim sh As Shape
Dim area As String
Set sh = Sheet1.Shapes("X")

Range("A1").Select
Do Until ActiveCell.Value = ""
    area = ActiveCell.Value
    If area = "X" Then
        sh.Fill.ForeColor.RGB = rgbRed
    End If
    ActiveCell.Offset(1, 0).Select
Loop End Sub

我在编写代码时遇到问题,需要更改单元格的名称并更改其他形状的颜色。

1 个答案:

答案 0 :(得分:0)

您必须在选择单元格之间等待大约1秒才能使其正常工作。使用您的代码和使用选择单元格,这样的东西应该工作:

Sub test()

    Dim sh As Shape
    Dim area As String

    Set sh = ActiveSheet.Shapes("X")    
    Range("A1").Select

    Do Until ActiveCell.Value = ""
        area = ActiveCell.Value

        If area = "X" Then
            sh.Fill.ForeColor.RGB = rgbRed
            Application.Wait Now + #12:00:01 AM#
        ElseIf area = "Y" Then
            sh.Fill.ForeColor.RGB = rgbGreen
            Application.Wait Now + #12:00:01 AM#
        End If
        ActiveCell.Offset(1, 0).Select

    Loop

End Sub

通常,在VBA中使用Select被认为是一种不好的做法,但在这种情况下,它会使“应用程序”看起来更好,因为您可以关注当前的单元格。