VBA Copiar Destino (Copiar Rango a Otra Hoja)
In this Article
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
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