Copiar celdas de la fila ActiveCell a una hoja de base de datos utilizando Microsoft Excel VBA en
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:
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
===
-
Haga clic en Insertar y luego en Módulo
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
===
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
-
Si ejecutamos esta macro nuevamente; los datos se guardarán en la siguiente fila; consulte la imagen de abajo:
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.
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]