Gostaria de sair do meu for
loop quando uma condição interna for atendida. Como eu poderia sair do meu for
loop quando a if
condição foi atendida? Eu acho que algum tipo de saída no final da minha if
declaração, mas não sei como isso funcionaria.
Dim i As Long
For i = 1 To 50
Range("B" & i).Select
If Range("B" & i).Value = "Artikel" Then
Dim temp As Long
temp = i
End If
Next i
Range("A1:Z" & temp - 1).EntireRow.Delete Shift:=xlToLeft
If [condition] Then Exit For
dentro de seu loopRespostas:
Para sair do seu loop mais cedo, você pode usar
Exit For
If [condition] Then Exit For
fonte
Exit
declaração do VBA tem menos opções do que o VB.NET. De fato, o VBA suporta apenas:Exit Do
Exit For
Exit Function
Exit Property
eExit Sub
. VBA não temExit While
. O link correto é: Referência do Office VBAOutra maneira de sair cedo de um loop For é alterando o contador de loop:
fonte
For Each
loops.For
loop (nãoFor Each
). Prós e contras se aplicam a diferentes soluções e situações diferentes - por exemplo, este é um formato mais robusto do que oGo To label
que freia a lógica (programação não estruturada) ou uma possível solução alternativa daContinue
palavra - chave ausente no VBA. Os méritos deExit For
pode ser questionada, bem como se a lógica não executar a limpeza adequada de objetos - implementações ruins não são muito relevantes aqui embora (@ jpmc26)A primeira resposta dada com a seguinte é de fato a melhor prática:
No entanto, isso também é uma opção:
fonte