Como copiar un rango(el cual varia en cantidad de filas) y pegarlo exactamente debajo de la ultima fila que copie

Primera vez que trabajo con macros. Solo he visto unos tutoriales por internet pero el tema me llama mucho la atención porque puedo mejorar en mi trabajo. Inicialmente selecciono y corto la fila tres y necesito que la pegue, justo al final del texto. Luego elimino la fila tres que esta vacía. Luego selecciono desde la fila tres hasta el final. Y necesito que lo copie justo debajo de la ultima línea.

Range("3:3").Select
Selection.Cut
ActiveCell.Offset(-2, 0).Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Offset(11, 0).Range("A1").Select
ActiveSheet. Paste

Hasta ahora esto es lo que he podido hacer, pero no me sirve si la cantidad de líneas varia. Me pueden decir cual es el error y como mejorarlo..

1 Respuesta

Respuesta
1

Para empezar tu intrucion son las siguiente

Range("3:3").Select
Selection. Cut

Corta la fila 3 entera

ActiveCell.Offset(-2, 0).Range("A1").Select

luego le dice que se pocicione en la celda a1

Range(Selection, Selection.End(xlDown)).Select

aqui le dice que seleciones desde la celda a1 hasta la ultima celda con dato

ActiveCell.Offset(11, 0).Range("A1").Select

Aquí tumba la selección por que le dice que seleccione la celda 11 desde la última celda activa

ActiveSheet. Paste

Aquí le dice que copie lo cortado osea la fila 3

Ahora bien a ver si entendí quiere contar la fila tres y copiarla debajo de la ultima celda con datos

Seria así

Range("3:3").Select
Selection. Cut

'cortamos la fila 3

Range("a100000").End(xlUp).Offset(1, 0).Select

'Aquí empezamos en la celda 100000 hacia arriba a buscar la ultima celda vacía

ActiveSheet. Paste

'Aquí copiamos los que cortamos

Range("a4").Select

Nos posicionamos en la celda a4

Range(Selection, Selection.End(xlDown)).Offset(-1, 0).Select

'Aquí seleccionamos desde a4 hasta la penúltima celda con datos si no hay espacio en blanco 'seria hasta ante de lo que cortamos en la fila 3

Selection. Copy

Copia lo seleccionado
Range("a100").End(xlUp).Offset(1, 0).Select

'Aquí empezamos en la celda 100000 hacia arriba a buscar la ultima celda vacía
ActiveCell. PasteSpecial

'Aquí se pega lo seleccionado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas