En Microsoft Excel, podemos copiar celdas de la fila de celda activa a una hoja específica. En este artículo usaremos el código VBA para transferir datos de cada hoja y fusionar los datos en una hoja de trabajo. Agregaremos una hoja maestra en el libro de trabajo y guardaremos los datos del rango especificado en una hoja.

_Los códigos de ejemplo se copiarán en una hoja de base de datos con el nombre Hoja2.

Cada vez que ejecutamos una macro, las celdas se colocarán debajo de la última fila con datos después de la última columna en sheet2. Esta macro copiará las celdas de la Columna A, D de ActiveCell._

A continuación se muestra la imagen de los datos de muestra:

image 1

Para copiar celdas de la fila activecell a Sheet2; debemos seguir los pasos a continuación para iniciar el editor de VB:

Haga clic en la pestaña Desarrollador. Desde el grupo Código, seleccione Visual Basic

image 2

===

  • Haga clic en Insertar y luego en Módulo

image 3

Esto creará un nuevo módulo. Ingrese el siguiente código en el módulo estándar

Sub CopyCells()

Dim sourceRange As Range

Dim destrange As Range

Dim Lr As Long

Lr = LastRow(Sheets("Sheet2")) + 1

Set sourceRange = Sheets("Sheet1").Cells( _

ActiveCell.Row, 1).Range("A1:D1")

Set destrange = Sheets("Sheet2").Range("A" & Lr)

sourceRange.Copy destrange

End Sub
Sub CopyCellsValues()

Dim sourceRange As Range

Dim destrange As Range

Dim Lr As Long

Lr = LastRow(Sheets("Sheet2")) + 1

Set sourceRange = Sheets("Sheet1").Cells( _

ActiveCell.Row, 1).Range("A1:D1")

With sourceRange

Set destrange = Sheets("Sheet2").Range("A" _

& Lr).Resize(.Rows.Count, .Columns.Count)

End With

destrange.Value = sourceRange.Value

End Sub
Function LastRow(sh As Worksheet)

On Error Resume Next

LastRow = sh.Cells.Find(What:="*", _

After:=sh.Range("A1"), _

Lookat:=xlPart, _

LookIn:=xlFormulas, _

SearchOrder:=xlByRows, _

SearchDirection:=xlPrevious, _

MatchCase:=False).Row

On Error GoTo 0

End Function
Function Lastcol(sh As Worksheet)

On Error Resume Next

Lastcol = sh.Cells.Find(What:="*", _

After:=sh.Range("A1"), _

Lookat:=xlPart, _

LookIn:=xlFormulas, _

SearchOrder:=xlByColumns, _

SearchDirection:=xlPrevious, _

MatchCase:=False).Column

On Error GoTo 0

End Function

image 4

image 5

===

Para verificar el código VBA anterior; agregue datos en el rango “A1: D1” y luego ejecute la macro presionando la tecla de método abreviado F5 Los datos almacenados en el rango especificado se copiarán en “Hoja2” comenzando desde A1

image 6

  • Si ejecutamos esta macro nuevamente; los datos se guardarán en la siguiente fila; consulte la imagen de abajo:

image 7

Podemos cambiar el rango en la macro anterior que se adapte a nuestro requisito Conclusión: * Con la macro anterior podemos copiar celdas de la fila de celda activa a una nueva hoja usando el código VBA.

image 48

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]