Excel - De End Sub me regresa a End If

   
Vista:

De End Sub me regresa a End If

Publicado por Antonio Reyes (18 intervenciones) el 20/02/2012 17:57:18
Hola!!!!

Hice un macro, como otros muchos que he hecho, en donde aparece una instrucción If seguida de los comandos que se deben ejecutar si la sentencia se cumple; por si no se cumple, después de esos comandos aparece un Else y los comandos que se deberían ejecutar; después de ellos aparece el End If para terminar la sentencia.

Después siguen otra serie de instrucciones y termino con End Sub.

Esta es la primera vez que me sucede que cuando ejecuto el macro después de pasar por el End Sub, en lugar de finalizar regresa al End If y ejecuta nuevamente todos los comandos y entra en un loop de dos o tres vueltas "End Sub" -- "End If"

¿Alguien sabe porqué sucede algo así?

Estoy desconcertado, no soy experto, mis macros no son muy pulidos, pero he hecho muchos que funcionan muy bien y jamás me había pasado semejante situación.

Agradezco su ayuda y explicaciones.
Antonio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

De End Sub me regresa a End If

Publicado por JuanC juanc2942@gmail.com (1053 intervenciones) el 20/02/2012 18:12:40
sería de gran ayuda si mostraras el código completo del procedimiendo...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

De End Sub me regresa a End If

Publicado por JuanC (1053 intervenciones) el 21/02/2012 01:19:27
visto el código puedo afirmar que es porque estás usando recursión...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

De End Sub me regresa a End If

Publicado por JuanC juanc2942@gmail.com (1053 intervenciones) el 21/02/2012 01:47:16
para evitar la recursión basta con un Goto...

1
2
3
4
5
6
7
8
9
Sub test()
begin:
If algo Then
   '//hacer algo
   Goto begin
Else
       '//hacer otro algo
End If
End Sub


Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar