Me gustaría salir de mi forbucle cuando se cumpla una condición interna. ¿Cómo podría salir de mi forbucle cuando ifse cumple la condición? Creo que hay algún tipo de salida al final de mi ifdeclaración, pero no sé cómo funcionaría.
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 Fordentro de tu circuitoRespuestas:
Para salir de su ciclo temprano puede usar
Exit ForIf [condition] Then Exit Forfuente
Exitdeclaración de VBA tiene menos opciones que las de VB.NET. De hecho, VBA solo admite:Exit DoExit ForExit FunctionExit PropertyyExit Sub. VBA no tieneExit While. El enlace correcto es: Referencia de Office VBA -SalidaOtra forma de salir temprano de un bucle For es cambiar el contador del bucle:
fuente
For Eachbucles.Forbucle (noFor Each). Los pros y los contras se aplican a diferentes soluciones y diferentes situaciones; por ejemplo, este es un formato más robusto que elGo To labelque frena la lógica (programación no estructurada) o una posible solución alternativa de laContinuepalabra clave, que falta en VBA. Los méritos deExit Forse pueden cuestionar también si la lógica no realiza una limpieza adecuada de los objetos; sin embargo, las malas implementaciones no son muy relevantes aquí (@ jpmc26)La primera respuesta dada con lo siguiente es, de hecho, la mejor práctica de la OMI:
Sin embargo, esta también es una opción:
fuente