VBA Copiar Destino (Copiar Rango a Otra Hoja)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 15, 2022

Este artículo demostrará cómo utilizar VBA para copiar un rango de celdas a otra hoja o libro de trabajo.

Para más información, lea nuestro Tutorial de Copiar y Pegar en VBA.

Copiar en una Hoja Existente

Para copiar un rango de celdas de una hoja a otra hoja que ya existe podemos utilizar el siguiente código:

Sub CopiarYPegar()
    ActiveSheet.Range("A1:D10").Select
    Selection.Copy
    Sheets("Hoja2").Select
    ActiveSheet.Paste
End Sub

Esto copiará la información almacenada en el rango de la hoja activa A1:D10, y la pegará en una Hoja2 existente. Como no hemos especificado el rango a seleccionar en la Hoja2, lo pegará automáticamente en Range(«A1»). También pegará en la Hoja2 cualquier formato que estuviera en el rango de la Hoja1.

Si deseamos pegarlo en una ubicación diferente en la Hoja 2, podemos seleccionar la celda de inicio o el rango a pegar. El código siguiente pegará la información a partir de la celda E2.

Sub CopiarYPegar_a_Rango()
    ActiveSheet.Range("A1:D10").Select
    Selection.Copy
    Sheets("Hoja2").Select
    Range("E1").Select
    ActiveSheet.Paste
End Sub

Para pegar simplemente los valores en la Hoja2 y no incluir el formato, podemos utilizar el siguiente código. Una vez más, no tenemos que especificar el rango al que se va a pegar si deseamos pegar en la celda A1.

Sub CopiarYPegarValores()
    ActiveSheet.Range("A1:D10").Select
    Selection.Copy
    Sheets("Hoja2").Select
    Selection.PasteSpecial Paste:=xlPasteValues
End Sub

Copiar a una Nueva Hoja

Para copiar y luego pegar en una nueva Hoja, podemos utilizar el siguiente código:

Sub CopiarYPegarEnHojaNueva()
    ActiveSheet.Range("A1:D10").Select
    Selection.Copy
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Paste
End Sub

Para copiar sólo los valores, podemos utilizar de nuevo xlPasteValues.

Copiar en un Libro de Trabajo Existente

Para copiar y pegar en un libro de trabajo completamente diferente, podemos tener ambos libros de trabajo ya abiertos, o podemos usar el código para abrir otro libro de trabajo, y luego pegar en ese libro. Este código de abajo copia a un libro de trabajo existente que ya está abierto.

Sub CopiarYPegarEnLibroAbierto()
    Range("A1:D10").Select
    Selection.Copy
    Windows("LibroAbierto.xlsx").Activate
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Paste
End Sub

Copiar a Otro Libro Abierto

Este código de abajo copiará y pegará en una nueva hoja en un segundo libro de trabajo que será abierto por el código.

Sub CopiarYPegar_AbrirArchivo()
    Range("A1:D9").Select
    Selection.Copy
    Workbooks.Open Filename:="C:\ExcelFiles\CombinedBranches.xlsx"
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Paste
End Sub

CONSEJO: ¡reemplace el nombre del archivo en el argumento Workbooks.Open por su propio nombre de archivo!

Copiar en un Nuevo Libro de Trabajo

También podemos copiar y pegar en un nuevo libro de trabajo.

Sub CopiarYPegarNuevoLibroDeTrabajo()
   Range("A1:D9").Select
   Selection.Copy
   Workbooks.Add
   ActiveSheet.Paste
End Sub
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples