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 precisa 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?
Você pode baixar este modelo VBA Break For Loop aqui - VBA Break For Loop Excel Template# 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. Para obter um exemplo, veja o código VBA abaixo.
Código:
Sub Exit_Loop () Dim K enquanto K = 1 a 10 células (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 eu quero quebrar o loop quando qualquer valor encontrado nas primeiras 10 células, para isso eu inseri algum valor de texto na célula A8.
Agora quero instruir isso no código dizendo “se a célula em loop tem 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
Veja estas linhas de código:
Se Células (K, 1) .Valor = “” Então
Células (K, 1). Valor = K
Outro
Sair para
Fim se
Ele diz If Cells (K, 1) .Value = “” 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 “Sair para” loop.
Agora execute o código que irá inserir os números de série até a célula A7.
O código acima saiu imediatamente do loop sem dizer nada, como sabemos se ele saiu do loop.
Para eliminar essa ambigüidade, precisamos colocar uma caixa de mensagem VBA simples como a seguir.
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
Assim como 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 Faça 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, sairá do loop. Se desejar 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 Faça 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 fornecidos, podemos sair do loop se os critérios forem TRUE ou então podemos continuar o loop.