【问题标题】:Blink shape depending on cell value闪烁形状取决于单元格值
【发布时间】:2018-01-19 09:43:53
【问题描述】:

我正在尝试创建一个包含形状的 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

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您必须在选择单元格之间等待大约 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 被认为是一种不好的做法,但在这种情况下,它会使“应用程序”看起来更好,因为您可以跟随当前单元格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      相关资源
      最近更新 更多