Excel VBA:基于计时器的条件格式单元格颜色';他自己的情况

Excel VBA:基于计时器的条件格式单元格颜色';他自己的情况,excel,vba,conditional-statements,Excel,Vba,Conditional Statements,我在一个文本框中有一个计时器,随着计时器的计数,它将从绿色变为黄色,再变为红色。颜色变化的时间间隔由单元格下拉列表中的选择决定 问题:如何让周围的细胞也改变颜色 If StopWatch.Range("E3") = "Anodized" Then If Calculations.Range("A1").Value > Calculations.Range("B3") And _

我在一个文本框中有一个计时器,随着计时器的计数,它将从绿色变为黄色,再变为红色。颜色变化的时间间隔由单元格下拉列表中的选择决定

问题:如何让周围的细胞也改变颜色

    If StopWatch.Range("E3") = "Anodized" Then
    
        If Calculations.Range("A1").Value > Calculations.Range("B3") And _
           Calculations.Range("A1").Value <= Calculations.Range("B4") Then
            With StopWatch.Shapes("TimeBox")
                .Fill.ForeColor.RGB = RGB(0, 255, 0) 'Green
            End With
        Else
            If Calculations.Range("A1").Value > Calculations.Range("B4") And _
               Calculations.Range("A1").Value <= Calculations.Range("B5") Then

                With StopWatch.Shapes("TimeBox")
                    .Fill.ForeColor.RGB = RGB(255, 255, 0) 'Yelow
                End With
            
            Else
                If Calculations.Range("A1").Value > Calculations.Range("B5") Then
                    With StopWatch.Shapes("TimeBox")
                        .Fill.ForeColor.RGB = RGB(255, 0, 0) 'Red
                    End With
                End If
            End If
        End If
    End If

如果秒表量程(“E3”)=“阳极化”,则
如果计算范围(“A1”)值>计算范围(“B3”)和_
计算。范围(“A1”)。数值计算。范围(“B5”)然后
带有秒表形状(“计时器”)
.Fill.ForeColor.RGB=RGB(255,0,0)“红色
以
如果结束
如果结束
如果结束
如果结束

上面的代码是我目前使用的条件格式的一个示例。我在下拉框中对其他几个选项重复了这一点。

将我的评论扩展为完整答案


使用
StopWatch.Shapes(“TimeBox”).TopLeftCell.Offset(行、列)引用周围的单元格。调整大小(行、列)
。例如,如果我想在计时器周围的每个相邻单元格中引用它们,比如
StopWatch.Shapes(“TimeBox”).TopLeftCell.Offset(-1,-1)。Resize(3,3)
,这将在计时器的左上角返回一个3x3的范围

这是你的代码与此应用。我还将您的If/Else更改为外观更干净的Select案例

Dim LowerLimit作为变量,middlimit作为变量,upper limit作为变量
LowerLimit=计算范围(“B3”).值
中值=计算范围(“B4”).值
上限=计算范围(“B5”).值
将时间框变暗为形状,周围变暗为范围
设置时间框=秒表。形状(“时间框”)
设置SurroundingRange=TimeBox.TopLeftCell.Offset(-1,-1)。调整大小(3,3)'根据需要编辑此范围
如果秒表量程(“E3”)=阳极氧化,则
选择案例计算。范围(“A1”)。值
大小写下限至中位数
TimeBox.Fill.ForeColor.RGB=RGB(0,255,0)“绿色
SurroundingRange.Interior.Color=RGB(0,255,0)
大小写中位数到上限
TimeBox.Fill.ForeColor.RGB=RGB(255,255,0)“黄色
SurroundingRange.Interior.Color=RGB(255,255,0)
大小写>上限
TimeBox.Fill.ForeColor.RGB=RGB(255,0,0)“红色
SurroundingRange.Interior.Color=RGB(255,0,0)
结束选择
如果结束

如果您知道要着色的区域,则
myRange.Interior.color=vbRed
(例如)应该可以正常工作。使用
秒表.Shapes(“TimeBox”).TopLeftCell.Offset(行、列)引用周围的单元格。调整大小(行、列)
。例如,如果我想在计时器周围的每个相邻单元格中引用它们,比如
StopWatch.Shapes(“TimeBox”).TopLeftCell.Offset(-1,-1)。Resize(3,3)
,它将在计时器的左上角返回一个3x3范围,使用您的方法引用一组单元格,如何将其内部颜色与形状“TimeBox”的内部颜色联系起来