Como copiar y pegar un rango variable con visual basic

Para poder copiar y pegar un rango de celdas cuyo largo es diferente en cada caso, se debe definir al menos una variable. Piensa antes de seguir leyendo, si recuerdas cómo saber la última fila de un rango de celdas de Excel.

Longitudes variables

Antes de poder copiar y pegar cualquier rango de celdas, se debe seleccionar. En los rangos variables, como su nombre indica, la última fila y columna del rango será siempre diferente. Por ello, antes de continuar leyendo este post, te recomiendo que le eches un vistazo a este otro donde se explica cómo saber la última fila de un rango de celdas o este otro en el que se explica cómo conocer la última columna de un rango.

Seleccionar / Copiar un rango variable

Ya vimos en anteriores entradas cómo seleccionar un rango hasta la última fila, y es eso lo que debemos seguir, pero habría que cambiar en el código el seleccionar (.Select) por el copiar (.Copy). Y nos quedaría la imagen de más abajo, con la línea de puntos verdes indicando que ese rango está copiado.


Dim ultimafila as Long
ultimafila = Range("A" & Rows.Count).End(xlUp).Row
Range("C2:C" & ultimafila).Copy


Explicación detallada

Primeramente hemos identificado la última fila contando por la columna A, que nos da un resultado de 12.

Para seleccionar ese rango manualmente deberíamos haber escrito en nuestro código:

Range("C2:C12")

Lo que hemos hecho ha sido sustituir el 12 y le "pegamos" la variable.

"C2:C" & ultimafila

Pegar rango de celdas

Finalmente, deberíamos seleccionar el rango deseado y pegar la selección, en este caso solo los valores.

Range("E2").PasteSpecial xlPasteValues

No hay comentarios:

Publicar un comentario

Otras entradas