Excel VBA Break For Loop
No VBA Break For Loop também é conhecido como saída para loop, cada loop em qualquer procedimento recebeu algum conjunto de instruções ou critérios para que ele execute mais de tempo, mas é muito comum que algum loop entre em um loop infinito, corrompendo assim o código em tais cenários, precisamos interromper ou sair do loop para sair de certas situações.
Digamos que instruímos o loop a ser executado 10 vezes e, com base na condição fornecida, se o valor da célula ou qualquer outro critério fornecido for bem-sucedido, ele terá que sair do loop do Excel antes de completar a cota de loop total de 10. Neste artigo, mostraremos como sair do loop com base nos critérios fornecidos.

Como interromper / sair de loops no VBA?
# 1 - Pausa para o próximo ciclo
O VBA For Next Loop é usado para fazer um loop nas células e executar um conjunto específico de tarefas. Por exemplo, observe o código VBA abaixo.
Código:
Sub Exit_Loop () Dim K As Long For K = 1 To 10 Cells (K, 1) .Value = K Next K End Sub
Isso irá inserir números de série da célula A1 a A10.

Esta é a coisa óbvia com o For Next Loop.
Agora, quero interromper o ciclo quando qualquer valor for encontrado nas primeiras 10 células. Para isso, inseri algum valor de texto na célula A8.

Agora quero instruir isso no código, dizendo: “se a célula em loop tem um certo valor, ela tem que sair do loop antes do limite pré-determinado”.
Código:
Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else Sair For End If Next K End Sub
Olhe estas linhas de código:
If Cells (K, 1) .Value = “” Then
Cells (K, 1) .Value = K
Else
Sair para
End If
Diz If Cells (K, 1). Valor = “a célula em loop é igual a nada, continue o loop de inserção de números de série de 1 a 10.
A última parte do loop diz:
Outro
Sair para
Se a condição acima não for TRUE, então o loop “Exit For”.
Agora execute o código. Ele irá inserir números de série até a célula A7.

O código acima saiu imediatamente do loop sem dizer nada; como sabemos que saiu do loop.
Para eliminar essa ambigüidade, precisamos colocar uma caixa de mensagem VBA simples abaixo.
Código:
Sub Exit_Loop () Dim K As Long For K = 1 To 10 If Cells (K, 1) .Value = "" Then Cells (K, 1) .Value = K Else MsgBox "Temos célula não vazia, na célula" & Células (K, 1) .Address & vbNewLine & "Estamos saindo do loop" Sair para End If Next K End Sub
Ao percorrer a célula, se qualquer célula não vazia for encontrada, ele exibirá a mensagem dizendo, “Nós temos uma célula não vazia, na célula A8. Estamos saindo do loop ”.

Isso informará ao usuário a saída do loop com um endereço de célula também. Se algum valor for inserido por engano, podemos verificar o endereço da célula retornado na caixa de mensagem.
# 2 - Break Do Until Loop
Da mesma forma que saímos do For Next Loop, também podemos sair do loop “Do Until”. Por exemplo, observe o código abaixo.
Código:
Sub Exit_DoUntil_Loop () Dim K enquanto K = 1 Faça até K = 11 células (K, 1) .Value = KK = K + 1 Loop End Sub
Este código também executa a tarefa de inserir números de série. Por exemplo, se quisermos sair do loop quando o valor da variável “k” se tornar 6, precisamos inserir os critérios como IF k = 6 e, em seguida, sair do loop.
Código:
Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Até K = 11 If K <6 Then Cells (K, 1) .Value = K Else Exit Do End If K = K + 1 Loop End Sub
Isso executará o loop até que o valor da variável se torne 6. Depois disso, ele sairá do loop. Se quiser mostrar a mensagem ao usuário, você também pode adicionar a caixa de mensagem.
Código:
Sub Exit_DoUntil_Loop () Dim K As Long K = 1 Do Até K = 11 If K 5 "Exit Do End If K = K + 1 Loop End Sub
Isso mostrará a mensagem abaixo.

Assim, com base nos critérios dados, podemos sair do loop se os critérios forem TRUE, ou então podemos continuar o loop.