Excel VBA Copiar Rango a Otra Hoja (8 Maneras Más Fáciles)

  • Compartir Este
Hugh West

Siempre que lo necesite, puede copiar un rango de una hoja a otra hoja o libro de trabajo. Hay diferentes tipos de copiar y pegar. Siguiendo este artículo, usted conocerá diferentes maneras de utilizar Excel VBA copiar rango a otra hoja.

Para que la explicación sea más amena, voy a utilizar un conjunto de datos de ejemplo que representa la información personal de determinadas personas. El conjunto de datos tiene 4 columnas, que son las siguientes Nombre, Apellido, Nombre completo, y Correo electrónico .

Descargar el cuaderno de ejercicios para practicar

VBA Copiar Rango a Otra Hoja.xlsm

8 Maneras de Excel VBA Copiar Rango a Otra Hoja

1. Copiar un rango a otra hoja con formato

Siempre que quieras Copia un rango de una hoja a otra hoja con Formato puede hacerlo simplemente utilizando la función VBA .

Aquí, voy a Copia una gama de Conjunto de datos hoja a ConFormato sábana.

Comencemos el procedimiento,

En primer lugar, abra el Desarrollador tab>> seleccionar Visual Basic

También puede utilizar la función ALT + F11 para abrir el VBA editor.

A continuación, se abrirá una nueva ventana denominada Microsoft Visual Basic para Aplicaciones.

A partir de ahí, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copy_Range_withFormat_ToAnother_Sheet() Range("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub 

Aquí, declaré el Subprocedimiento Copiar_rango_con_formato_a_otra_hoja

He tomado rango B1:E10 para copiar de la hoja existente al nombre de la hoja ConFormato .

En este caso, he utilizado el Copia para copiar el rango seleccionado, Copia copia cualquier rango con Formato .

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copiar_rango_con_formato_a_otra_hoja seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Por lo tanto Copia la gama seleccionada con Formato a la nueva hoja que he seleccionado ( ConFormato) .

2. VBA Copiar un Rango a Otra Hoja sin Formato

También es posible Copia un rango a otra hoja sin Formato utilizando el VBA .

Aquí, voy a Copia una gama de Conjunto de datos hoja a SinFormato sábana.

Comencemos el procedimiento,

Ahora, abra el Desarrollador tab>> seleccionar Visual Basic ( utilizar el ALT + F11)

A continuación, se abrirá Microsoft Visual Basic para Aplicaciones.

A continuación, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copiar_Rango_SinFormato_EnOtra_Hoja() Rango("B1:E10").Copiar Hojas("SinFormato").Rango("B1").PegarEspecial _ Pegar:=xlPegarValores, Operación:=xlNinguna, SaltarBlancos _ :=False, Transponer:=False End Sub 

Aquí, declaré el Subprocedimiento Copiar_rango_sin_formato_en_otra_hoja

He tomado rango B1:E10 para copiar de la hoja existente al nombre de la hoja SinFormato .

En este caso, he utilizado el Copia para copiar el rango seleccionado, pero también se menciona Pegar:=xlPegarValores en el PegarEspecial para que sólo pegue Valores del rango seleccionado, no el formato.

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copiar_rango_sin_formato_en_otra_hoja y seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Así, se Copia el rango seleccionado sólo con Valores no Formato .

3. Copiar un Rango a Otra Hoja con Formato y Ancho de Columna

A veces es posible que desee Copia cualquier rango seleccionado tal cual, para ello puede Copia una gama con Formato y Ancho de columna .

Aquí, voy a Copia una gama de Conjunto de datos hoja a Formato & Ancho de columna sábana.

Para ver el procedimiento para realizar la tarea utilizando VBA ,

En primer lugar, abra el Desarrollador tab>> seleccionar Visual Basic

También puede utilizar la función ALT + F11 para abrir el VBA editor.

A continuación, se abrirá una nueva ventana de Microsoft Visual Basic para Aplicaciones.

Allí, abre Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copiar_Rango_a_Otra_hoja_con_FormatoYAncho_columna() Rango("B1:E10").Copiar Destino:=Hojas("Formato &Cuadro Ancho_columna").Rango("B1:E10").Copiar Rango("Formato &Cuadro Ancho_columna").Rango("B1").PegarEspecial Pegar:=xlPegarAnchos_columna, _ Operación:=xlNinguna, SaltarBlancos:=Falso, Transponer:=False End Sub 

Aquí, declaré el Subprocedimiento Copiar_rango_a_otra_hoja_con_formato_y_anchura_columna

He tomado rango B1:E10 para copiar de la hoja existente al nombre de la hoja de destino Formato & Ancho de columna .

En este caso, he utilizado el Copia para copiar el rango seleccionado. También utilicé el método PegarEspecial donde mencioné Pegar:=xlPegarAnchoColumna para que pegue el rango seleccionado junto con Formato y Ancho de columna .

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copiar_rango_a_otra_hoja_con_formato_y_anchura_columna y seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Como resultado, se Copia la gama seleccionada con Formato y Ancho de columna .

4. VBA Copiar un Rango a Otra Hoja con Fórmula

En caso de que tenga alguna fórmula en su conjunto de datos que desee copiar, ¡no se preocupe! Puede copiar el rango que contiene Fórmula a otra hoja manteniendo la fórmula intacta.

Aquí, voy a Copia una gama de Conjunto de datos hoja a ConFórmula hoja

Comencemos el procedimiento,

Para empezar, abra el Desarrollador tab>> seleccionar Visual Basic ( también puede utilizar el ALT + F11 teclado)

A continuación, se abrirá Microsoft Visual Basic para Aplicaciones.

A partir de ahí, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copy_Range_withFormula_ToAnother_Sheet() Range("B1:E10").Copy Sheets("ConFórmula").Range("B1").PasteSpecial Paste:=xlPasteFormulas, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Aquí, declaré el Subprocedimiento Copiar_rango_con_fórmula_a_otra_hoja

He tomado rango B1:E10 para copiar de la hoja existente al nombre de la hoja de destino ConFórmula .

En este caso, he utilizado el Copia para copiar el rango seleccionado. También utilicé el método PegarEspecial donde mencioné Pegar:=xlPegarFormulas para que lleve el Fórmulas junto con la gama seleccionada.

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copiar_rango_con_fórmula_a_otra_hoja seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Así, se Copia todos los rangos de celdas seleccionados con Fórmulas .

Lecturas similares:

  • Cómo utilizar el desplazamiento de rango de VBA (11 formas)
  • VBA para cada celda del rango en Excel (3 métodos)
  • Cómo Utilizar el Objeto Rango de VBA en Excel (5 Propiedades)

5. Copiar un rango con Autoajustar a otra hoja

En Copia de un rango a otra hoja también puede utilizar la función AutoFit en el método VBA a AutoFit el rango copiado en la nueva hoja.

Aquí, voy a Copia una gama de Conjunto de datos hoja a AutoFit hoja

Comencemos el procedimiento,

En primer lugar, abra el Desarrollador tab>> seleccionar Visual Basic

También puede utilizar la función ALT + F11 para abrir el VBA editor.

A continuación, se abrirá una ventana de Microsoft Visual Basic para Aplicaciones.

A continuación, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copy_Range_withFormat_AutoFit() Sheets("Dataset").Select Range("B1:E10").Copy Sheets("AutoFit").Select Range("B1").Select ActiveSheet.Paste Columns("B:E").AutoFit End Sub 

Aquí, declaré el Subprocedimiento Copy_Range_withFormat_AutoFit

En primer lugar, seleccioné la hoja de cálculo Conjunto de datos . entonces tomado el rango B1:E10 para copiar de la hoja existente a la hoja de destino denominada AutoFit .

En este caso, he utilizado el Copia para copiar el rango seleccionado y el método AutoFit ajustará automáticamente las columnas dadas B:E .

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copy_Range_withFormat_AutoFit seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Por lo tanto Copia el rango seleccionado a una nueva hoja y también AutoFit las columnas.

6. VBA Copiar un Rango a Otro Libro de Trabajo

Si lo desea, también puede Copia un rango de una hoja a otra hoja de un libro de trabajo diferente.

Aquí, voy a Copia una gama de Conjunto de datos hoja a Hoja1 de Libro1 cuaderno de ejercicios.

Comencemos el procedimiento,

En primer lugar, abra el Desarrollador tab>> seleccionar Visual Basic (y También puede utilizar la función ALT + F11 teclado)

A continuación, se abrirá Microsoft Visual Basic para Aplicaciones.

A continuación, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copy_Range_WithFormat_Toanother_WorkBook() Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset").Range("B3:E10")._ Copy Workbooks("Book1").Worksheets("Sheet1").Range("B3") End Sub 

Aquí, declaré el Subprocedimiento Copiar_rango_con_formato_a_otro_libro_de_trabajo

He tomado la gama B3:E10 del nombre de la hoja Conjunto de datos para copiar de la hoja existente al nuevo nombre del libro de trabajo Libro1 y nombre de la hoja Hoja1 .

En este caso, he utilizado el Copia para copiar el rango seleccionado en el nuevo libro.

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copiar_rango_con_formato_a_otro_libro_de_trabajo seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Ahora Copia la gama seleccionada del Conjunto de datos a otro libro de trabajo.

7. Copiar un rango a la última fila de otra hoja

En cualquier caso, si desea Copia un rango a otra hoja desde una celda en particular o desde la última celda puede hacerlo utilizando la función VBA .

Antes de entrar en el procedimiento, quiero decirte que, he tomado dos nuevas hojas que consisten en Nombre completo, correo electrónico, y Dirección .

Observemos el Conjunto de datos2 hoja primero.

Aquí está el Debajo de la última celda sábana.

Aquí, voy a Copia una gama de Conjunto de datos2 hoja a Por debajo de la última celda pero desde la primera celda no en blanco.

Para empezar, abra el Desarrollador tab>> seleccionar Visual Basic

A continuación, se abrirá Microsoft Visual Basic para Aplicaciones.

A continuación, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copy_Range_BelowLastCell_AnotherSheets() Sheets("Dataset2").Select lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Range("A2:C" & lr).Copy Sheets("Below Last Cell").Select lrAnotherSheet = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Cells(lrAnotherSheet + 1, 1).Select ActiveSheet.Paste Columns("A:C").AutoFit EndSub 

Aquí, declaré el Subprocedimiento Copy_Range_BelowLastCell_AnotherSheets

En primer lugar, he seleccionado la hoja Conjunto de datos2 y luego utilizó el Fila para contar los Última fila y mantuvo la fila contada en lr .

A continuación, tomado el rango A2:C & lr para copiar de la hoja existente al nombre de la hoja de destino Por debajo de la última celda .

Una vez más, utilizó el Fila para contar los Última fila de otra hoja denominada Debajo de la última celda y mantuvo la fila contada en lrOtraHoja .

En este caso, he utilizado el Copia para copiar el rango seleccionado y el método AutoFit ajustará automáticamente las columnas dadas A:C .

Por fin, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copy_Range_BelowLastCell_AnotherSheets seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Por lo tanto Copia la gama seleccionada y Pegar de la última fila de otra hoja.

8. VBA Copiar un Rango a la Última Fila de Otro Libro de Trabajo

Si desea Copia un rango a la última fila de otra hoja del libro de trabajo también puede utilizar la función VBA .

Aquí, voy a Copia una gama de Conjunto de datos2 hoja a Hoja1 de Libro2 pero desde la primera celda no en blanco.

Para iniciar el procedimiento,

En primer lugar, abra el Desarrollador tab>> seleccionar Visual Basic

También puede utilizar la función ALT + F11 para abrir el VBA editor.

A continuación, se abrirá una nueva ventana de Microsoft Visual Basic para Aplicaciones.

A partir de ahí, abra Inserte Seleccionar Módulo .

A Módulo a continuación, escriba el siguiente código en el campo abierto Módulo .

 Sub Copy_Range_BelowLastCell_To_Another_Workbook() Dim wsCopy As Worksheet Dim wsDestination As Worksheet Dim lCopyLastRow As Long Dim lDestLastRow As Long Set wsCopy = Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset2") Set wsDestination = Workbooks("Book2.xlsx").Worksheets("Sheet1") lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row lDestLastRow =wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Offset(1).Row wsCopy.Range("A2:C" & lCopyLastRow).Copy wsDestination.Range("A" & lDestLastRow) End Sub 

Aquí, declaré el Subprocedimiento Copiar_Rango_bajo_última_celda_en_otro_libro_de_trabajo donde wsCopy y wsDestino son Hoja de trabajo tipo, lCopyLastRow y lDestLastRow son Largo tipo.

En primer lugar, utiliza Establecer para establecer variables para la hoja a copiar y la hoja de destino.

A continuación, utilizó el Fila para encontrar la última fila basándose en los datos de la columna A en el rango de copia.

Una vez más, utilizó el Fila para encontrar la primera fila en blanco a partir de los datos de la columna A en el rango de destino también se utiliza Desplazamiento para bajar una propiedad.

Por fin, Copiado los datos de Conjunto de datos2 hoja del Excel VBA Copiar Rango a Otra Hoja.xlsm libro de trabajo al destino Hoja1 del cuaderno Libro2.xlsx .

Ahora, Guardar el código y vuelve a la hoja de cálculo.

A continuación, abra el Ver tab>> de Macros Seleccionar Ver macros

➤ A cuadro de diálogo aparecerá.

Ahora, desde el Nombre de la macro seleccione el Copiar_Rango_bajo_última_celda_en_otro_libro_de_trabajo seleccione también el libro de trabajo dentro de Macros en .

Por fin, Ejecutar el seleccionado Macro .

Por lo tanto Copia el rango seleccionado de la hoja existente a la última fila de otro libro de trabajo.

Sección práctica

He incluido una hoja de práctica en el libro de ejercicios para practicar estas formas explicadas de Excel VBA copiar rango a otra hoja.

Conclusión

En este artículo, he explicado 8 tipos diferentes de formas fáciles y rápidas de Excel VBA copiar rango a otra hoja. Estas diferentes formas le ayudarán a copiar un rango de una hoja a otra y también de una hoja a otro libro de trabajo. Por último, pero no menos importante, si usted tiene cualquier tipo de sugerencias, ideas y comentarios por favor no dude en comentar a continuación.

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.