Cómo copiar filas de Excel con VBA

Cómo copiar filas en excel

Todos nos hemos visto obligados alguna vez a copiar filas de Excel de una hoja a otra, o de un libro a otro. Lo más fácil o intuitivo es utilizar el famoso copiar y pegar, Ctrl+C y Ctrl+V, pero muchas veces nos dejamos por el camino alguna fila o algún dato y al final los libros de Excel no cuadran. Por eso conviene conocer otras formas de copiar las filas de Excel entre hojas y libros, y una de las más eficientes es utilizando los macros o VBA, ya que entre sus muchas funciones está la de copiar las filas de Excel.

Macro para copiar filas de Excel

Como siempre que utilizamos VBA, necesitaremos un código para crear la macro que nos permita copiar las filas. Ya sabes que tendrás que modificar el rango indicado en el método Range para seleccionar las filas que quieres. A continuación te ofrecemos el código para copiar la fila “1” en la fila “2”, así que tendrás que cambiar el Range para adaptar la macro de Excel a las necesidades de tu libro de Excel. El código es el siguiente:

Private Sub CommandButton1_Click()

Range(“1:1”).Copy
Range(“2:2”).PasteSpecial xlPasteAll

Application.CutCopyMode = False

End Sub

Recuerda que a la hora de copiar el código debes respetar todos los espacios, las distintas líneas, etc. Lo único que modificaremos será el rango de las filas que queremos copiar y su destino. Este código solo nos sirve cuando hablamos de copiar filas de Excel con VBA en la misma hoja. Si la quieres copiar en otra hoja, deberás utilizar el objeto Worksheets para especificar la hoja de destino, modificando siempre el rango de origen y destino para seleccionar unos datos concretos. El código es el siguiente:

Private Sub CommandButton1_Click()

Range(“1:1”).Copy
Worksheets(“Hoja3”).Range(“2:2”).PasteSpecial xlPasteAll



Application.CutCopyMode = False

End Sub

La cosa se complica todavía un poco más cuando queremos copiar una fila de una hoja a otra hoja, pero ni la hoja de origen ni la de destino son las hojas que tenemos activas en este momento. Para ello, al introducir el código con el que generaremos la macro hay que indicar el nombre de la hoja de Excel tanto al copiar como al pegar. Vamos a ver un ejemplo de código, teniendo en cuenta que la hoja activa se llama Hoja1 y que queremos copiar la fila 1 de la Hoja2 a la fila 2 de la Hoja3.

Private Sub CommandButton1_Click()

Worksheets(“Hoja2”).Range (“1:1”).Copy
Worksheets(“Hoja3”).Range (“2:2”).PasteSpecial xlPasteAll

Application.CutCopyMode = False

End Sub

Como ves, la cosa no entraña ningún misterio. Aplicando el código y modificando los rangos y el nombre de las hojas según las hayamos nombrado nosotros en el propio documento, nos aseguramos de que podremos copiar íntegramente todos los valores de nuestras filas de una hoja a otra, conservando también el formato sin perder nada por el camino.

Cómo mover filas en Excel

  • ¿Te ha servido de ayuda?
  • No