让我们说我有一个简单的循环,如下所示:
Dim iCounter as Long
Dim iMax as Long
iMax = 4
For iCounter = 1 to iMax
If iCounter = 3 Then iMax = 5
Debug.Print iCounter
Next iCounter
现在的问题是,为什么我不能在运行时更改我的iMax?此操作的结果将是1到4的值,但不是5。
有没有办法如何在不使用GoTo语句到循环开头且不改变循环逻辑的情况下改变它? (我可以用Do-While循环来做到这一点,但我想知道我是否可以用这个做同样的事情)
答案 0 :(得分:1)
Sub t()
Dim iMax As Integer
Dim iCounter As Integer
iMax = 10
For iCounter = 1 To iMax
If iCounter = iMax Then Exit For
If iCounter = 5 Then iMax = 8
Next iCounter
End Sub
答案 1 :(得分:0)
使用另一个在每个循环上递增的变量。然后,如果要添加,请将icounter更改为icounter - 1