Leonard está escribiendo una macro para transferir datos de una hoja de trabajo a otra. Ambas hojas de trabajo están en el mismo libro de trabajo. Los datos que quiere transferir están en la primera hoja de trabajo y usa un rango con nombre: «SourceData».

Consiste en una sola fila de datos. Leonard quiere, dentro de la macro, transferir estos datos de la primera hoja de trabajo a la primera fila vacía en la segunda hoja de trabajo, pero no está muy seguro de cómo hacerlo.

En realidad, hay varias formas de hacerlo, pero todos los métodos tienen dos requisitos previos: la identificación del rango de origen y la identificación del rango de destino. El rango de fuente es fácil porque tiene un nombre. Puede especificar el rango de origen en su macro de esta manera:

Set rngSource = Worksheets("Sheet1").Range("SourceData")

Descubrir la primera fila vacía en la hoja de trabajo de destino es un poco más complicado. Aquí tienes una forma relativamente fácil de hacerlo:

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1 Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

Cuando se completa, la variable rngTarget apunta hacia el rango de la celda A en cualquiera que sea la primera fila vacía. (En este caso, una fila vacía se define como cualquier fila que no tenga algo en la columna A.)

Ahora todo lo que necesita hacer es poner estos rangos de origen y destino para usar con el método Copiar:

Sub CopySource()

Dim rngSource As Range     Dim rngTarget As Range     Dim iRow As Integer

Set rngSource = Worksheets("Sheet1").Range("SourceData")

iRow = Worksheets("Sheet2").Cells(Rows.Count,1).End(xlUp).Row + 1     Set rngTarget = Worksheets("Sheet2").Range("A" & iRow)

rngSource.Copy Destination:=rngTarget End Sub

Tenga en cuenta que con los rangos definidos, todo lo que necesita hacer es usar el método Copiar en el rango de origen y especificar el rango de destino como el destino de la operación. Cuando se completa, los datos originales todavía se encuentran en el rango de origen, pero se han copiado en el destino.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (6131) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.

Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Transferring_Data_between_Worksheets_Using_a_Macro [Transfiriendo datos entre hojas de trabajo usando una macro].