我在使用excel vba for循環中的if語句時遇到了問題。調試器的輸出不是我所期望的。我可以發佈我想要完成的完整代碼,但是我認爲我已經將其縮小到了我不瞭解的範圍。這裏是我的代碼:在for循環中使用if語句 - Excel VBA
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語句。我如何修改代碼以獲得我期望的輸出?我一直在掙扎與此幾個小時,它似乎很簡單:(。
更新表將再次觸發事件代碼禁用此,所以你應該在進行任何更改之前使用'Application.EnableEvents = FALSE'。完成後回到True ... –