VBA中断循环|如何在Excel VBA中退出循环循环?

Excel VBA中断循环

VBA中断循环 也称为退出循环,在任何过程中,每个循环都被赋予了一定的指令集或标准以使其可以随意运行,但是在某些情况下某些循环进入无限循环从而破坏代码是很常见的。在某些情况下需要中断或退出循环。

假设我们已指示循环运行10次,并根据给出的条件(如果单元格值或任何其他提供的条件成功)给出条件,则它必须在完全循环配额为10之前退出excel循环。在本文中,我们将向您展示如何根据给定的标准退出循环。

如何中断/退出VBA中的循环?

您可以在此处下载此VBA Break For Loop Excel模板– VBA Break For Loop Excel模板

#1 –中断下一个循环

VBA For Next Loop用于遍历单元格并执行一组特定的任务。有关示例,请查看下面的VBA代码。

代码:

 Sub Exit_Loop()Dim K只要K = 1至10个像元(K,1)。值= K下一个K结束Sub 

这将从单元格A1到A10插入序列号。

对于下一个循环,这是显而易见的事情。

现在,我想在前10个单元格中找到任何值时中断循环,为此,我在单元格A8中输入了一些文本值。

现在,我想在代码中对此进行说明:“如果循环单元格具有特定值,则必须在预定限制之前退出循环”。

代码:

 Sub Exit_Loop()Dim K只要K = 1到10,如果Cells(K,1).Value =“”然后Cells(K,1).Value = K其他出口,如果下一个K结束Sub 

查看以下代码行:

如果Cells(K,1).Value =“”然后

单元格(K,1)。值= K

别的

退出

万一

它说,如果Cells(K,1).Value =“”循环的单元格等于0,则继续从1到10插入序列号的循环。

循环的最后一部分说:

别的

退出

如果以上条件不为真,则“ Exit For”循环。

现在运行代码,它将插入序列号,直到A7单元格为止。

上面的代码没有说什么就直接退出了循环,我们怎么知道它已经退出了循环。

为了消除这种歧义,我们需要放置一个简单的VBA消息框,如下所示。

代码:

 Sub Exit_Loop()Dim K只要K = 1到10,如果Cells(K,1).Value =“”然后Cells(K,1).Value = K Else MsgBox“我们在单元格中有一个非空单元格”& Cells(K,1).Address&vbNewLine&“我们正在退出循环”如果下一个K End Sub,则退出并结束 

当在单元格中循环时,如果找到任何非空单元格,它将显示消息“我们在单元格A8中获得了非空单元格。我们正在退出循环”。

这还将通过单元地址通知用户循环的退出。如果错误输入了任何值,那么我们可以检查消息框中返回的单元格地址。

#2 –中断直到循环

就像我们退出For Next循环的方式一样,我们也可以退出“直到”循环。例如,看下面的代码。

代码:

 Sub Exit_DoUntil_Loop()Dim K只要Long K = 1直到K = 11 Cells(K,1).Value = K K = K +1 Loop End Sub 

该代码还执行插入序列号的任务。例如,如果我们希望在变量“ k”的值变为6时退出循环,则需要输入条件,如果IF k = 6,则退出循环。

代码:

 Sub Exit_DoUntil_Loop()Dim K只要Long K = 1直到K = 11如果K <6那么Cells(K,1).Value = K其他出口如果K = K +1结束循环结束Sub 

这将运行循环,直到变量值变为6,此后它将退出循环。如果您希望向用户显示消息,则可以添加消息框。

代码:

 Sub Exit_DoUntil_Loop()Dim K只要K = 1,直到K = 11,如果K = 5,则退出;如果K = K +1,则结束循环。Sub 

这将显示以下消息。

像这样基于给定的条件,如果条件为TRUE,我们可以退出循环,否则我们可以继续循环。