如何在vba中使用do while循环?

VBA Do while 是一个循环,您需要指定一个条件,并且该条件必须保持为真才能执行循环。简而言之,它首先检查您指定的条件是否为真,如果该条件为真,则执行循环,否则不执行任何操作。

在每次迭代中,它都会测试条件,然后才执行指令。假设您想要在 Excel 中添加工作表,但完整工作表数量为 12 个或更少。在这种情况下,您可以使用 do-while 循环来编写此代码。

句法

以下是每个后续循环的 VBA 语法。

 Do While Condition [statements] Loop
vba-do-while-循环条件语句
  1. Condition:这是你指定的条件,这个条件必须为真才能执行循环。
  2. 语句:您希望 Do While 循环执行条件为 true 的代码行。
  3. Loop :这是循环迭代的结束语句,告诉 VBA 返回再次测试条件。

了解 DO While 循环的示例

为了理解 Do While 循环,让我们编写一段代码,当工作表总数少于 12 个时,将工作表添加到工作簿中。您无需告诉 VBA 要添加多少个工作表,每次运行此代码时总共都会有 12 个工作表。

使用以下步骤:

  1. 首先,您需要在键盘上输入“Do While”。
    type-the-keyword-do-while
  2. 接下来,您需要编写一个条件来检查工作簿中的工作表总数是否少于 12 个。
  3. 为此,您需要使用下面的代码,该代码计算工作表的总数,然后将其与数字 12 进行比较。
    condition-to-check-worksheets
  4. 接下来,您需要编写代码来添加工作表。当您指定的条件为真时,此代码将运行。
    code-to-add-worksheet
  5. 最后,输入关键字“Loop”来完成代码。
    type-loop-to-end-the-code

这是您刚刚编写的完整代码:

 Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub

现在让我解释一下这段代码的工作原理:您指定的条件检查工作簿中的工作表总数,然后您有一个小于运算符来检查工作表数量是否为 12。

工作表数量小于12时,循环将继续运行并不断添加新的工作表,但一旦工作表数量达到12,循环就会停止。

简单来说,只要工作表的数量少于十二个,循环就会继续运行。

do-while 循环示例

事情是这样的,使用您刚刚编写的代码,您不需要指定要添加的工作表数量,但是如果进入下一个循环,您需要指定要添加的工作表计算数量。

做一个循环

Do Loop While 是 Do While Loop 的扩展版本,它的工作原理相同,但在测试条件时略有不同。

在 Do Loop While 中,它会在测试您指定的条件之前运行循环的一次迭代,如果条件为真,它将继续循环。

假设您想编写一些代码来检查密码,以运行一些代码并在密码不正确时继续循环(我们在示例中看到这一点)。

句法

以下是 VBA Do Loop While 的语法。

for-vba-do-loop-while 语法
  1. Do:这是 Do While 循环的起始关键字。
  2. 语句:这是您要在循环中运行的代码行。
  3. Loop While:这是继续循环并测试您指定的条件的关键字。
  4. 条件:这是在循环开始第二次迭代并继续循环之前要测试的条件。

正如您在 Do Loop While 的语法中看到的,它首先会执行一次语句,然后会转到条件并测试它,如果条件为真,它将启动循环并继续执行 while 条件为真的。

了解 DO 循环 while 的示例

为了理解 do while 循环,让我们编写一些代码来显示输入框并要求用户输入密码。

该输入框将继续清楚地显示用户输入的密码不正确,最多尝试五次,之后输入框将消失而不执行该过程。

  1. 首先,声明两个用于存储密码和尝试计数器的变量。
    declare-two-variables-you-need-for-storing
  2. 之后,输入关键字“Do”。在这里,您不需要像在语法中看到的那样首先定义条件。
    type-the-do-keyword
  3. 接下来,您需要编写一行代码来显示要求用户输入密码的输入框。
    write-a-line-of-code
  4. 从这里您需要设置一个最多可以计数到五的计数器(每次循环迭代都会累加)。
    define-a-counter
  5. 现在输入关键字“Loop While”并设置两个条件,可以检查用户在输入框中输入的值,并可以测试计数器值是否小于5。
    type-keyword-loop-while-and-define-two-condition
  6. 最后,编写您要运行的代码。这里我使用 IF 语句,如果用户输入的密码正确,它将显示一个消息框。
    write-the-code-you-want-to-run
 Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub

让我向您解释一下这段代码。

  • 在此代码的第一部分中,您有 do while 循环,它将向用户显示一个输入框并要求他们输入密码
  • 如果密码不正确,则会继续循环运行,直到用户输入正确的密码。
  • 但是当您使用计数器来计算循环的迭代次数时,一旦该计数器达到 5,循环就会停止

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注