Como hacer que termine un Bucle en VBA

Espero puedan ayudarme, necesito un bucle que copie en la fila de abajo el valor de la celda activa, pero no puedo hacer que se detenga.

El siguiente código si hace esto pero no se detiene con la ultima fila sino que el ultimo valor lo sigue copiando y copiando sin detenerse, y no puedo encontrar un código o condición para detenerla, me gustaría me pudieran ayudar, muchas gracias de antemano.

Hoja1.Range("R1").Select
Selection.End(xlDown).Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell > "" Then
ActiveCell.Offset(1, 0).Value = ActiveCell
ActiveCell.Offset.End(xlDown).Select
Else
Exit Do
End If
Loop
End Sub

1 respuesta

Respuesta
1

Reemplazá el

Do While Not IsEmpty(ActiveCell)

por

Do While ActiveCell.Value <> ""

Amigo disculpa, ya hice el cambio que me propusiste, pero la macro hace exactamente lo mismo que con la sentencia anterior.

Espero puedas ayudarme, saludos...

Eso por responder "en automático". El tema es que está mal planteado el ejercicio por lo cual nunca se va a detener pues lo que estás pidiendo (y está haciendo) es que copie en la celda de abajo lo que está en la celda actual y preguntás si tiene datos la celda actual para parar el código.

El tema es que, supongamos que tenés datos solo en las 3 primeras celdas, cuando la macro llegue a la celda 3, entonces va a copiar el valor a la celda 4, pero cuando pase por el loop, ahora la celda 4 SI tiene valor, la macro NO va a parar y encima se lo va a copiar a la celda 5 por lo que se vuelve a repetir el ciclo ya que cuando llegue a la celda 5 SI tiene valor, y etc...

Espero haber sido claro, básicamente vas a tener que cambiar la condición de parada porque esta macro así como está hecha te va a traer el mismo problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas