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 de 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 () Atenuar sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Establecer sourceRange = Sheets ("Sheet1"). Cells (_ ActiveCell.Row, 1) .Range ("A1: D1") Establecer 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 Establecer sourceRange = Sheets ("Sheet1"). Cells (_ ActiveCell.Row, 1) .Range ("A1: D1") Con sourceRange Establecer destrange = Sheets ("Sheet2"). Range ("A" _ & Lr) .Resize (.Rows.Count, .Columns.Count) Finalizar con destrange.Value = sourceRange.Value End Sub
Función LastRow (sh As Worksheet) En caso de error Reanudar Siguiente 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
Función Lastcol (sh As Worksheet) En caso de error Reanudar Siguiente 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" a partir de A1
- Si ejecutamos esta macro nuevamente; los datos se guardarán en la siguiente fila; consulte la siguiente imagen:
- Podemos cambiar el rango en la macro anterior que se adapte a nuestros requisitos
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 al sitio de correo electrónico