我在 excel vba 的 for 循环中使用 if 语句时遇到问题。调试器的输出不是我所期望的。我可以发布我想要完成的完整代码,但我认为我已经将它缩小到我不理解的范围内。这是我的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
For i = 9 To 60 Step 3
If Cells(i, "DR").Value < Cells(i, "EB").Value Then
Debug.Print i & "-ifloopstart"
Cells(i, "DR").Value = 999999
Debug.Print i & "-ifloopend"
End If
Next i
End Sub
调试器的输出是:
9-ifloopstart
33-ifloopstart
51-ifloopstart
51-ifloopend
33-ifloopend
9-ifloopend
但是,我期望:
9-ifloopstart
9-ifloopend
33-ifloopstart
33-ifloopend
51-ifloopstart
51-ifloopend
有人可以解释这是如何工作的吗?它似乎是循环回到 if 语句的开头而不是结束 if 语句。如何修改代码以获得我期望的输出?我已经为此苦苦挣扎了好几个小时,看起来很简单:(。