簡體   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