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,我们可以退出循环,否则我们可以继续循环。