[英]VBA Positive For loop, negative step
Sub Test1()
Dim a As Integer
For a = 1 To 3 Step 1 'STEP POSITIVE ONE
Next
Debug.Print a
End Sub
收益率为4,如预期。
Sub Test2()
Dim a As Integer
For a = 1 To 3 Step -1 'STEP NEGATIVE ONE
Next
Debug.Print a
End Sub
为什么踩到“外部”循环会导致1?
为什么VBA步入Test1的界限,但是当它对于Test2的超出部分时停止踩踏?
编辑:除上述之外,运行For a = 1 To 1 Step 1
得到2,而For a = 1 To 1 Step -1
得到0。
For a = 1 To 2 Step 1
得到3,但For a = 1 To 2 Step -1
得到1。
在Test1
(即For a = 1 To 3 Step 1
),在第3次循环之后, a
增加到4.当它大于3时,它停止并显示4。
在Test2
(即For a = 1 To 3 Step -1
), a
初始设置为1.因为它已经小于3,所以它立即停止并显示1。
在For a = 1 To 1 Step 1
, a
设置为1,其不大于1,因此循环继续,然后a
递增到2.当2大于1时,它停止并显示2。
在For a = 1 To 1 Step -1
, a
设置为1,不小于1,因此循环继续,然后a
递减到0.当0小于1时,它停止并显示0。
在For a = 1 To 2 Step 1
, a
设置为1,不大于2,因此循环继续,然后a
递增到2,然后a
递增到3.当3大于1时,它停止并显示3。
在For a = 1 To 2 Step -1
, a
设置为1,小于2,因此循环停止并显示1。
这些循环中的实际过程是:
将循环计数器初始化为“起始值”
循环执行以下步骤:
确定循环计数器是否大于“结束值”(如果“步”为正或零)或小于“结束值”(如果“步”为负),如果是,则退出循环
在循环中执行语句
将“step”添加到循环计数器
这些都记录在MSDN页面上的“For ... Next Statement”中 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.