Me gustaría salir de mi for
bucle cuando se cumpla una condición interna. ¿Cómo podría salir de mi for
bucle cuando if
se cumple la condición? Creo que hay algún tipo de salida al final de mi if
declaració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 For
dentro de tu circuitoRespuestas:
Para salir de su ciclo temprano puede usar
Exit For
If [condition] Then Exit For
fuente
Exit
declaración de VBA tiene menos opciones que las de VB.NET. De hecho, VBA solo admite:Exit Do
Exit For
Exit Function
Exit Property
yExit 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 Each
bucles.For
bucle (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 label
que frena la lógica (programación no estructurada) o una posible solución alternativa de laContinue
palabra clave, que falta en VBA. Los méritos deExit For
se 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