繁体   English   中英

如果elseif语句Excel VBA

[英]If elseif statement Excel VBA

在AI列中有目标产量,在BI列中有实际产量,在CI列中有两者之间的差异。 我只想遍历C列中的每一行,并根据策略存储区标记每个值。 下面是我进入主文档之前尝试的示例代码。

我的问题是如何在循环中的当前单元格上执行操作。 代码只是为我单击的最后一个单元格着色,而不是对要评估的单元格进行着色。 有什么建议么?

Sub StratBuckets()

Dim Delta As Variant
Dim n As Integer

n = 0           
For n = 0 To 15
    ' works up to this point --> points to the right value
    Delta = Worksheets("Test").Range("A1:Z1000").Find("Start Date").Offset(n, 3).Value

    If Delta > 0 And Delta <= 10 Then
        ActiveCell.Interior.Color = vbYellow        
    ElseIf Delta > 10 Then
        ActiveCell.Interior.Color = vbGreen        
    ElseIf Delta < 0 Then
        ActiveCell.Interior.Color = vbRed                
    Else        
    End If               
Next n

End Sub

您需要在正确的单元格上应用.Interior.Color

如果Worksheets("Test").Range("A1:Z1000").Find("Start Date").Offset(n, 3)是要着色的单元格,则请执行以下操作:

Worksheets("Test").Range("A1:Z1000").Find("Start Date").Offset(n, 3).Interior.Color = ...

另一种方法是,使用以下方法将范围DeltaRng设置为“ Find

Worksheets("Test").Range("A1:Z1000").Find("Start Date")

然后,如果Find成功,则使用Delta = DeltaRng.Offset(n, 3).Value获取右侧的Delta值3列。

最后,当你在你的内If Delta > 0 And Delta <= 10 Then等..你可以修改.Interior.Color与细胞的DeltaRng.Offset(n, 3).Interior.Color = vbYellow

Sub StratBuckets()

Dim DeltaRng As Range
Dim Delta As Variant
Dim n As Long

For n = 0 To 15
    ' works up to this point --> points to the right value
    Set DeltaRng = Worksheets("Test").Range("A1:Z1000").Find("Start Date") '.Offset(n, 3).Value

    If Not DeltaRng Is Nothing Then '<--make sure Find was successful
        Delta = DeltaRng.Offset(n, 3).Value '<-- find the Delta value 3 columns to the right

        If Delta > 0 And Delta <= 10 Then
            DeltaRng.Offset(n, 3).Interior.Color = vbYellow
        ElseIf Delta > 10 Then
            DeltaRng.Offset(n, 3).Interior.Color = vbGreen
        ElseIf Delta < 0 Then
            DeltaRng.Offset(n, 3).Interior.Color = vbRed
        End If
    End If

Next n

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM