📜  VBA直到循环

📅  最后修改于: 2021-01-11 14:17:57             🧑  作者: Mango

VBA直到循环

当我们想无限期地重复代码块或一组语句直到条件为True时,才使用“直到循环”。可以在循环的开始或结束时检查条件。

直到…”循环语句检查循环开始时的条件,“直到…”循环直到语句检查循环结束时的条件。

如果在循环开始时检查了条件,则如果最初本身满足条件,则代码块不会执行(并且循环甚至不会运行一次)。如果最后检查了条件,则循环至少运行一次。

句法

直到…循环语句

Do Until [Condition]
...............
...............

[Block of code]
...............

Loop

流程图

在此示例中,我们使用Do Before …循环在循环开始时检查条件。仅当条件为false时,才执行循环内的语句。当条件为真时,它存在于循环之外。

Private Sub Constant_demo_Click()
   i = 5
   Do Until i > 10
      i = i + 1
      MsgBox ("The value of i is : " & i)
   Loop
End Sub

执行代码后,您将获得输出:

The value of i is: 6

The value of i is: 7

The value of i is: 8

The value of i is: 9

The value of i is: 10

The value of i is: 11

做…直到循环语句

Do … Until循环用于在循环结束时检查条件。

句法

Do
..............
..............

[Block of code]
..............

Loop Until [Condition]

流程图

在此示例中,我们使用Do … Until循环在循环结束时检查条件。即使条件为true,循环内的语句也至少执行一次。

Private Sub Constan_demo_Click()
i = 5
Do
i = i + 1
MsgBox "the value of i is: " & i
Loop Until i < 10
End Sub

执行代码后,您将在消息框中获得以下输出。

退出执行声明

您可以通过使用Exit Do语句提前退出Do WhileDo While循环,而无需完成整个周期。

Exit Do语句将立即停止执行循环并立即执行代码段。对于内部嵌套级别,它将停止并执行下一个外部嵌套级别。

一个循环中可以有多个Exit Do语句。如果要在达到特定值或满足特定条件时终止循环,或者想要在特定点结束无限循环,则该功能特别有用。

例如:

Sub exitDo1()
Dim i As Integer
Dim iTotal As Integer
iTotal = 0
Do While i < 10
iTotal = i + iTotal
i = i + 1
If i = ActiveSheet.Range("A1") Then
Exit Do
End If
Loop
MsgBox iTotal
End Sub

执行上面的代码,您将获得以下输出。