在处理期间更改循环最大值

时间:2016-06-24 13:45:17

标签: vba excel-vba loops excel

让我们说我有一个简单的循环,如下所示:

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循环来做到这一点,但我想知道我是否可以用这个做同样的事情)

2 个答案:

答案 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