Macro para copiar y pegar de una hoja de cálculo a otra (15 métodos)

  • Compartir Este
Hugh West

Tabla de contenido

Cuando trabajamos con varias hojas de Excel, a veces tenemos que copiar datos de una hoja de cálculo a otra. Implementar VBA es el método más eficaz, rápido y seguro para ejecutar cualquier operación en Excel. En este artículo, le mostraremos cómo copiar y pegar datos de una hoja de cálculo a otra en Excel con el botón Macro VBA .

Descargar el cuaderno de ejercicios

Puede descargar gratuitamente el libro de prácticas en Excel desde aquí.

Copiar y pegar de una hoja de cálculo a otra.xlsm

15 Métodos con VBA para copiar y pegar datos de una hoja de cálculo a otra en Excel

En esta sección, aprenderá 15 métodos sobre cómo puede copiar datos de una hoja de cálculo y pegarlos en otra con VBA en Excel.

Arriba está el conjunto de datos que este artículo considerará como nuestro ejemplo.

1. Macro VBA incrustada para copiar y pegar un rango de datos de una hoja de cálculo a otra

Los pasos para copiar y pegar un rango de datos de una hoja de cálculo a otra con VBA se describen a continuación.

Pasos:

  • Al principio, pulse Alt + F11 en su teclado o vaya a la pestaña Desarrollador -> Visual Basic para abrir Editor de Visual Basic .

  • En la ventana de código emergente, en la barra de menús, haga clic en Insertar -> Módulo .

  • Ahora, copie el siguiente código y pegar en el ventana de código .
 Sub CopyPasteToAnotherSheet() Worksheets("Dataset").Range("B2:F9").Copy Worksheets("CopyPaste").Range("B2") End Sub 

Su código ya está listo para ejecutarse.

Este fragmento de código copie el rango de B2 a F9 del hoja denominada Conjunto de datos y pegar los del B2 Gama en el CopiarPegar hoja con nombre .

  • A continuación, pulse F5 en el teclado o, en la barra de menús, seleccione Run -> Run Sub/UserForm También puede hacer clic en el botón pequeño icono Play en la barra de submenú para ejecutar la macro.

Observa la siguiente imagen.

Por último, todos los datos del Conjunto de datos se copia ahora en la hoja CopiarPegar en nuestro libro de Excel.

Más información: Excel VBA: Copiar Rango a Otro Libro

2. Macro VBA para copiar y pegar datos de una hoja de cálculo activa a otra en Excel

En la sección anterior, no requerimos que la hoja de trabajo se activara. Pero en esta sección, aprenderemos a copiar y pegar datos en una hoja de cálculo activa .

Pasos:

  • De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En la ventana de código, copie el siguiente código y pegar eso.
 Sub CopyPasteToAnotherActiveSheet() 'Copia los datos de la hoja origen Sheets("Dataset").Range("B2:F9").Copy 'Activa la hoja destino Sheets("Paste").Activate 'Selecciona el rango destino Range("B2").Select 'Pega en el destino ActiveSheet.Paste Application.CutCopyMode = False End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar el código como se muestra arriba y vea el resultado en la siguiente imagen.

Esta vez, todos los datos del Conjunto de datos se copia ahora en la hoja Pegar que activamos antes de copiar los datos.

Más información: Fórmula Excel para copiar texto de una celda a otra hoja

3. Copiar y pegar una sola celda de una hoja de cálculo a otra en Excel con la macro VBA

En las secciones anteriores, has aprendido cómo copiar y pegar un rango de datos de una hoja de cálculo a otra. Ahora, verás cómo copiar y pegar cuando tenga un solo dato en su hoja de cálculo Excel.

Fíjese en la siguiente imagen, el Gama consta de un solo valor.

Veremos cómo podemos copiar y pegar esta celda en otra hoja en Excel con VBA .

Pasos:

  • Como se ha indicado anteriormente, abrir Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En la ventana de código, copie el siguiente código y pegar
 Sub CopyPasteSingleRangeToAnotherSheet() Hojas de cálculo("Rango").Rango("B4").Copiar Hojas de cálculo("CopiarRango").Rango("B2") End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este trozo de código y observe la siguiente imagen.

Ese único dato " Copiar esta celda " en Celda B4 en el Conjunto de datos se copia ahora en la hoja CopiarRango hoja en Celda B2 .

Más información: Excel VBA para Copiar Sólo Valores a Destino (Macro, UDF y UserForm)

4. Pegar datos copiados de una hoja de cálculo a otra con el método PasteSpecial en la macro de Excel

Puede copiar datos de una hoja de cálculo y pegarlos de varias maneras con la función PegarEspecial con el método VBA A continuación se indican los pasos necesarios.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub CopyPasteSpecial() Hojas de cálculo("Dataset").Range("B2:F9").Copy Hojas de cálculo("PasteSpecial").Range("B2").PasteSpecial End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este trozo de código.

Fíjese en la imagen de arriba. Los datos del Conjunto de datos hoja se transfiere ahora en el PegarEspecial en Excel.

Más información: VBA Pegado Especial para Copiar Valores y Formatos en Excel (9 Ejemplos)

5. Macro para copiar y pegar datos por debajo de la última celda de una hoja de cálculo a otra en Excel

Ya tenemos algunos datos en el Conjunto de datos (mostrada en la sección de introducción). Ahora, mire la parte siguiente de esta sección. Ahora tenemos algunos datos nuevos en otra hoja llamada Última celda .

Lo que queremos hacer aquí es, vamos a datos específicos de la copia (celdas B5 a F9) del Conjunto de datos hoja y pegar los de debajo de la última celda de este Última celda sábana.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En segundo lugar, copie el siguiente código y pegar en la ventana de código.
 Sub CopyPasteBelowTheLastCell() 'Establecer variables Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Establecer variables para las hojas origen y destino Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Last Cell") 'Encontrar la última fila usada en la hoja origen basándose en los datos de la columna B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Busca la primera fila en blanco en la hoja de destino basándose en los datos de la columna B 'La propiedad Offset sirve para mover los datos copiados 1 fila hacia abajo iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Copia los datos del origen y los Pega en el destino wsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B" & iTargetLastRow) End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este código. Mira la imagen de abajo.

Aquí, sólo el datos seleccionados del Conjunto de datos hoja es ahora copiado debajo de la última celda del Última celda hoja en Excel.

Más información: Fórmula para Copiar y Pegar Valores en Excel (5 Ejemplos)

6. Macro VBA para borrar la hoja de cálculo primero y luego copiar y pegar en otra hoja de cálculo

¿Qué pasa si tienes los datos erróneos en tu hoja existente y quieres extraer los datos originales allí?

Mira la siguiente imagen. Vamos a borrar los datos del Rango claro y almacenar aquí los datos del Conjunto de datos con VBA código.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En segundo lugar, copie el siguiente código y pegar en la ventana de código.
 Sub ClearAndCopyPasteData() 'Establecer variables Dim wsSource As Worksheet Dim wsTarget As Worksheet Dim iSourceLastRow As Long Dim iTargetLastRow As Long 'Establecer variables para las hojas de origen y destino Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Clear Range") 'Encontrar la última fila utilizada en la hoja de origen basándose en los datos de la columna B iSourceLastRow = wsSource.Cells(wsSource.Rows.Count,"B").End(xlUp).Row 'Buscar la primera fila en blanco en la hoja de destino basándose en los datos de la columna B 'La propiedad Offset sirve para mover los datos copiados 1 fila hacia abajo iTargetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "B").End(xlUp).Offset(1).Row 'Borrar los datos del rango de destino wsTarget.Range("B5:F9" & iTargetLastRow).ClearContents 'Copiar los datos del origen y pegarlos en el destinowsSource.Range("B5:F9" & iSourceLastRow).Copy wsTarget.Range("B5") End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar Mira la siguiente imagen.

Los datos anteriores del Rango claro se sustituye ahora por los datos de la hoja Conjunto de datos sábana.

Más información: Macro para copiar datos de un libro a otro en función de criterios

7. Macro para Copiar y Pegar Datos de una Hoja de Cálculo a Otra con la Función Range.Copy

Ahora, aprenderemos el VBA código sobre cómo copiar y pegar datos de una hoja de cálculo a otra con el Rango.Copiar en Excel.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En segundo lugar, copie el siguiente código y pegar en la ventana de código.
 Sub CopyWithRangeCopyFunction() 'Establecer variables Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Establecer variables para las hojas origen y destino Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Copy Range") 'Copiar datos del origen y Pegar en el destino Call wsSource.Range("B2:F9").Copy(wsTarget.Range("B2")) End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este trozo de código y mira la siguiente imagen.

Hemos duplicado con éxito los datos del Conjunto de datos hoja en el Intervalo de copia hoja con el Rango.Copiar función.

Más información: Fórmula Excel para Copiar el Valor de una Celda a Otra Celda

Lecturas similares

  • Excel VBA para copiar filas a otra hoja de cálculo basado en criterios
  • Usar VBA para Pegar Valores Sólo sin Formato en Excel
  • Cómo copiar y pegar sólo celdas visibles en Excel (3 maneras fáciles)
  • Copiar y Pegar No Funciona en Excel (9 Razones & Soluciones)
  • Cómo Copiar Varias Filas en Excel Usando Macro (4 Ejemplos)

8. Implementar código macro para duplicar datos de una hoja de cálculo a otra con la propiedad USEDRANGE

Esta vez, aprenderemos el VBA código sobre cómo copiar y pegar datos de una hoja de cálculo a otra con el UsadosRange en Excel.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub CopyWithUsedRange() 'Establecer variables Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Establecer variables para las hojas origen y destino Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("UsedRange") 'Copiar datos del origen y Pegar en el destino Call wsSource.UsedRange.Copy(wsTarget.Cells(2, 2)) End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este trozo de código.

Como podemos ver en la imagen anterior, hemos copiado y pegado correctamente los datos de la carpeta Conjunto de datos hoja en el Rangos usados hoja con el USEDRANGE propiedad.

Más información: Cómo copiar el mismo valor en varias celdas en Excel (4 métodos)

9. Macro VBA para copiar y pegar datos seleccionados de una hoja a otra en Excel

Puede copiar y pegar sólo algunos datos seleccionados de una hoja de cálculo a otra con VBA A continuación se muestran los pasos para hacerlo.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub CopyPasteSelectedData() 'Establecer variables Dim wsSource As Worksheet Dim wsTarget As Worksheet 'Establecer variables para las hojas origen y destino Set wsSource = Worksheets("Dataset") Set wsTarget = Worksheets("Paste Selected") 'Copiar datos del origen wsSource.Range("B4:F7").Copy 'Pegar datos en el destino Call wsTarget.Range("B2").PasteSpecial(Paste:=xlPasteValues) End Sub 

Su código ya está listo para ejecutarse.

Este código copiar sólo el rango de B4 a F7 del Conjunto de datos hoja y pegar los del B2 Gama en el PegarSeleccionado hoja con nombre .

  • Siguiente, Ejecutar este código.

Por último, sólo los datos seleccionados del Conjunto de datos se copian y pegan correctamente en la hoja Pegar seleccionado hoja en el libro de Excel.

Más información: Cómo aplicar VBA PasteSpecial y mantener el formato de origen en Excel

10. Código Macro para Duplicar Datos de una Hoja de Cálculo a Otra en la Primera Fila en Blanco

Aquí veremos cómo copiar datos del Conjunto de datos hoja y pegar los de la primera celda en blanco en otra hoja de cálculo en Excel con VBA .

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub FirstBlankCell() Range("B2:F9", Range("B" & Rows.Count).End(xlUp)).Copy Sheet13.Range("A65536").End(xlUp) End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este trozo de código.

Véase en la imagen superior. Hoja13 estaba completamente en blanco. Como resultado, el código ejecutado pegaba los datos copiados del Conjunto de datos hoja en la primera celda en el Hoja13 en Excel.

Más información: Copiar y Pegar Valores en la Siguiente Fila Vacía con Excel VBA (3 Ejemplos)

11. Incrustar VBA para copiar y pegar los datos autofiltrados de una hoja Excel a otra

Podemos filtrar el conjunto de datos de origen y copiar y pegar sólo los datos filtrados en otra hoja de cálculo Siga este artículo para aprender a hacerlo paso a paso con VBA .

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Option Explicit Sub AutoFilter() Range("B4:B101").AutoFilter 1, "Dean" Range("B4:F9").Copy Sheet17.Range("B" & Rows.Count).End(xlUp)(2) Range("B4").AutoFilter End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar Sólo la fila que tiene " Decano "en ella, se filtrará y copiará en otra hoja.

Observe en la imagen anterior que sólo los datos filtrados " Decano " del Columna B ahora se copia y pega en el Hoja15 sábana.

Más información: Cómo copiar y pegar en Excel usando VBA (7 métodos)

Lecturas similares

  • Cómo Autofiltrar y Copiar Filas Visibles con Excel VBA
  • Copiar Valores Únicos a Otra Hoja de Cálculo en Excel (5 Métodos)
  • Cómo copiar celdas combinadas y filtradas en Excel (4 métodos)
  • Error de ejecución 1004: Error en el método PasteSpecial de la clase Range
  • Cómo pegar enlace y transponer en Excel (8 formas rápidas)

12. Pegar una Fila en la Parte Inferior de un Rango Manteniendo la Fórmula Copiada del Rango Superior

Cuando quiera copiar un valor y mantener la fórmula en su interior mientras lo pega en otra fila, luego con VBA puede ejecutar la tarea fácilmente.

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub PasteRowWithFormulaFromAbove() Rows(Range("B" & Rows.Count).End(xlUp).Row).Copy Rows(Range("B" & Rows.Count).End(xlUp).Row + 1).Insert xlDown End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este código y mira la imagen de abajo.

En la última fila se copia tal cual en la fila contigua.

Más información: Cómo copiar datos de una celda a otra en Excel automáticamente

13. VBA para replicar datos de una hoja a otra hoja en otro libro abierto pero no guardado

Fíjese en el nombre de nuestro libro de trabajo de ejemplo, Cuaderno de trabajo fuente Copiaremos los datos del Conjunto de datos de este libro y pegarla en otra hoja de otro libro llamada Cuaderno de destino es decir abierto pero aún no guardado .

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub CopiarUnoDeOtroNoGuardado() Workbooks("Libro Origen").HojasDeTrabajo("ConjuntoDeDatos").Rango("B2:F9").Copiar Workbooks("Libro Destino").HojasDeTrabajo("Hoja1").Rango("B2") End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este código.

Datos de la Conjunto de datos hoja en el Cuaderno de trabajo fuente se copia ahora en Hoja1 hoja en el Cuaderno de destino .

Más información: Excel VBA: Copiar valor de celda y pegar en otra celda

14. Macro para reproducir datos de una hoja a otra hoja en otro libro abierto y guardado

Esta vez copiar los datos del Conjunto de datos hoja del Cuaderno de trabajo fuente y pegar en el Hoja2 en la Cuaderno de destino Pero ahora, el el libro de trabajo está abierto y guardado .

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub CopyOneFromAnotherSaved() Libros de trabajo("Libro de trabajo de origen.xlsm").Hojas de trabajo("Conjunto de datos").Rango("B2:F9").Copiar _ Libros de trabajo("Libro de trabajo de destino.xlsx").Hojas de trabajo("Hoja2").Rango("B2") End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este código.

Datos de la Conjunto de datos hoja en el Cuaderno de trabajo fuente se copia ahora en Hoja2 hoja en el Cuaderno de destino Y mira el nombre, este se guardó el libro de trabajo esta vez.

Más información: Cómo copiar y pegar en Excel sin cambiar el formato

15. Aplicar VBA para copiar y pegar datos de una hoja de cálculo a otra hoja de cálculo en otro libro cerrado

En las dos secciones anteriores, aprendimos a copiar y pegar datos de una hoja de cálculo a otra en otro libro de trabajo que esté abierto. En esta sección, aprenderemos el código sobre cómo copiar y pegar datos cuando se cierra el libro de trabajo .

Pasos:

  • En primer lugar, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • Segundo, copie el siguiente código y pegar en la ventana de código.
 Sub CopyOneFromAnotherClosed() 'Para abrir el libro de trabajo guardado en su sistema 'cambie la ruta de abajo según la ubicación de su archivo en su sistema Workbooks.Open "D:\ExcelWIKI\Excel Folder\Destination Workbook.xlsx" 'Copia los datos del libro de trabajo llamado Source Workbook y 'Pégalos en el libro de trabajo de destino llamado Destination Workbook Workbooks("SourceWorkbook").Worksheets("Dataset").Range("B2:F9").Copy Workbooks("Destination Workbook").Worksheets("Sheet3").Range("B2") 'Cierra el libro de destino después de guardar Workbooks("Destination Workbook").Close SaveChanges:=True End Sub 

Su código ya está listo para ejecutarse.

  • Siguiente, Ejecutar este código.

Aunque, esta vez el libro de trabajo fue cerrado pero aún después de la ejecución del código, los datos del Conjunto de datos hoja en el Cuaderno de trabajo fuente se copia ahora en Hoja3 hoja en el Cuaderno de destino .

Más información: Excel VBA para copiar datos de otro libro sin abrir

Cosas para recordar

  • Los métodos 1 a 14 requieren que sus libros de trabajo estén abiertos Cuando ejecute los códigos de macro que se muestran en estos métodos, no olvide mantener abiertos tanto el libro de origen como el de destino.
  • Mientras su se guardan los libros de trabajo, escriba el nombre del archivo con el tipo de archivo dentro del código. Cuando el los libros de trabajo no se guardan, entonces escriba sólo el nombre del archivo sin el tipo de archivo. Por ejemplo, si su archivo se guarda el libro de trabajo a continuación, escriba " Destino. xlsx ", pero si el el libro de trabajo no se guarda a continuación, escriba " Destino "dentro del código.

Conclusión

Este artículo muestra cómo copiar y pegar datos de una hoja de cálculo a otra en Excel con VBA Espero que este artículo le haya sido muy útil. No dude en preguntar si tiene alguna duda sobre el tema.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.