VBA Break For Loop

Excel VBA Break For Loop

p>In VBA Break For Loop é também conhecido como saída para loop, Cada laço em qualquer procedimento recebeu um conjunto11e de instruções ou critérios para correr nuber de tempo, mas é muito comum que algum laço entre num laço infinito, corrompendo assim o código em tais cenários que precisamos de quebrar ou sair para que o laço saia de determinadas situações.

Vamos dizer que instruímos o laço para correr 10 vezes, e com base na condição dada, se o valor da célula ou qualquer outro critério fornecido for bem sucedido, então tem de sair do laço do Excel antes de completar a quota total do laço de 10. Neste artigo, mostrar-lhe-emos como sair do loop com base nos critérios dados.

VBA Break For Loop

VBA Break For Loop

Como quebrar/sair loops em VBA?

Pode descarregar este modelo VBA Break For Loop Excel aqui – VBA Break For Loop Excel Template

#1 – Break For Next Loop

VBA For Next Loop é usado para fazer loop sobre células e executar um conjunto específico de tarefas. Por exemplo, veja abaixo o código VBA.

Código:

Sub Exit_Loop() Dim K As Long For K = 1 To 10 Cells(K, 1).Value = K Next KEnd Sub

Isto irá inserir números de série da célula A1 a A10.

Break For Loop Example 1

Isto é a coisa óbvia com For Next Loop.

Agora quero quebrar o laço quando qualquer valor for encontrado nas primeiras 10 células. Para isto, introduzi algum valor de texto na célula A8.

Break For Loop Example 1-1

Break For Loop Example 1-1

Agora quero instruir isto no código, dizendo, “se a célula de looping tem um determinado valor, tem de 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 Exit For End If Next KEnd Sub

Lê estas linhas de código:

Se Células(K, 1).Valor = “” Depois
Células(K, 1).Value = K
Else
Exit For
End If

Curso Popular nesta categoria

Venda

Formação VBA (3 Cursos, 12+ Projectos)
4.6 (247 classificações) 3 Cursos | 12 Projectos Práticos | 43+ Horas | Acesso a Tempo Inteiro | Certificado de Conclusão
>/div>

Diz Se Células(K, 1). Value = “looping cell is equal to nothing continue the loop of insertting serial numbers from 1 to 10.

A última parte do loop diz:

Else

Exit For

Se a condição acima não for VERDADEIRA, então o loop “Exit For”.

P>Agora execute o código. Irá inserir números de série até à célula A7.

Break For Loop Example 1-2

Break For Loop Example 1-2

O código acima saiu imediatamente do laço sem dizer nada; como sabemos que saiu do laço.

Para limpar esta ambiguidade, precisamos de colocar uma simples caixa de mensagem VBA 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 "We got non empty cell, in cell " & Cells(K, 1).Address & vbNewLine & "We are exiting the loop" Exit For End If Next KEnd Sub

Quando se faz um loop através da célula, se for encontrada alguma célula não vazia, ela exibirá a mensagem dizendo: “Temos célula não vazia, na célula A8. Estamos a sair do laço”.

Exit For Next Loop 1-3

Exit For Next Loop 1-3

Isto irá informar o utilizador da saída do laço com um endereço de célula também. Se algum valor for introduzido por engano, então podemos verificar o endereço da célula devolvida na caixa de mensagens.

#2 – Break Do Until Loop

Tal como saímos para o próximo loop, da mesma forma, podemos também sair do loop “Do Until”. Por exemplo, veja o código abaixo.

Código:

Sub Exit_DoUntil_Loop() Dim K As Long K = 1 Do Until K = 11 Cells(K, 1).Value = K K = K + 1 LoopEnd Sub

Este código também executa a tarefa de inserir números de série. Por exemplo, se quisermos sair do laço quando o valor da variável “k” se tornar 6, precisamos de introduzir o critério como IF k = 6 e depois sair do laço.

Código:

Sub Exit_DoUntil_Loop() Dim K As Long K = 1 Do Until K = 11 If K < 6 Then Cells(K, 1).Value = K Else Exit Do End If K = K + 1LoopEnd Sub

Esta irá executar o laço até o valor da variável se tornar 6. Depois disso, sairá do laço. Se desejar mostrar a mensagem ao utilizador, então também pode adicionar a caixa de mensagens.

Código:

Sub Exit_DoUntil_Loop() Dim K As Long K = 1 Do Until K = 11 If K < 6 Then Cells(K, 1).Value = K Else MsgBox "We are exiting the loop because k value is >5" Exit Do End If K = K + 1 LoopEnd Sub

Esta irá mostrar a mensagem abaixo.

Exit Do Until Loop

Exit Do Until Loop

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

Artigos recomendados

Este tem sido um guia para a pausa VBA para o loop. Aqui aprendemos como sair/quebrar o laço VBA juntamente com exemplos passo a passo e um modelo Excel descarregável. Abaixo estão alguns artigos úteis do Excel relacionados com VBA –

  • VBA ME Keyword
  • VBA Chr
  • VBA UsedRange
  • VBA Wait
0 Acções

div>div> Formação VBA (3 Cursos, 12+ Projectos)

  • 3 Cursos
  • 12 Mãos-em Projectos
  • 43+ Horas
  • Acesso a Tempo Inteiro
  • Certificado de Conclusão

APRENDA MAIS >>

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *