gpt4 book ai didi

VBA正For循环,负步骤

转载 作者:行者123 更新时间:2023-12-05 00:40:12 24 4
gpt4 key购买 nike

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 ),在第三次循环之后,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。

这些循环中的实际过程是:

  • 将循环计数器初始化为“起始值”
  • 循环以下步骤:
  • 判断循环计数器是否大于“结束值”(如果“步”为正或零)或小于“结束值”(如果“步”为负),如果是,则退出循环
  • 在循环内执行语句
  • 在循环计数器中添加“步骤”

  • 所有这些都记录在 MSDN 页面上的 "For...Next Statement" .

    关于VBA正For循环,负步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47863548/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com