变量如何在vba中引用相同的变量?

时间:2019-04-24 00:05:52

标签: excel vba for-loop variables

这里是所有初学者。我很难理解以下代码或任何操作相同变量的代码。

例如:

Private Sub CommandButton1_Click()

Dim i As Long

For i = 1 To 3
i = i + 1
Next i

MsgBox (i)

End Sub

为什么会返回5?

3 个答案:

答案 0 :(得分:2)

您应注意,通常在循环内更改For循环计数器是一个坏习惯。

这是怎么回事:

在循环运行时,如果Next i的值在{之外,则ii的值加1(即使您已经添加了一个...)。 {1}}边界然后循环终止。

所以:

迭代1:For以1进入循环,由i递增为2,然后再次变为3。

迭代2:Next i以3进入循环,由i增至4,然后又由5返回

5在1-3之外,因此Next i最终为5

答案 1 :(得分:0)

i = i + 1Next i具有相同的效果。基本上,您在for语句中将1加到i上,并在递增时再次添加。

For i = 1 to 3 'starts with i = 1
    i = i + 1 'adds 1 to i, i = 2 in the first loop
Next i  'adds 1 to i, i = 3 at the end of the first loop. Thee second loop starts

i以3的值启动secons循环,当您将其添加1时  i = i + 1,然后再次输入Next i

我希望这可以帮助您理解它,并且很抱歉,我的回答有点不整洁,我是通过手机答复的。

答案 2 :(得分:0)

这是使用For循环重写的While循环:

i = 1
While i >= 1 And i <= 3
    i = i + 1
    i = i + 1
End While

请注意,Next i被直接转换为i = i + 1-因此,对于循环的每次迭代,您现在都在有效地执行i = i + 2

由于i在开始时是1,因此它与循环条件匹配,因此我们将2添加到i。它仍然符合循环条件,因此我们再次添加另一个2来执行循环。

这意味着i1 + 2 + 25