Copie un rango en el lugar de Activecell a una hoja de base de datos usando VBA en Microsoft Excel

Tabla de contenido
  • Los códigos de ejemplo se copiarán en una hoja de base de datos con el nombre Hoja2.
  • Cada vez que ejecute uno de los subs, las celdas se colocarán debajo de la última fila con datos o después de la última columna con datos en sheet2.
  • Para cada ejemplo, hay una macro que hace una copia normal y otra que solo copia los valores.
  • Los subs de ejemplo utilizan las funciones siguientes (las macros no funcionarán sin las funciones).
Sub CopyToActiveCell () Dim sourceRange As Range Dim destrange As Range Si Selection.Cells.Count> 1 Luego Salir de Sub Set sourceRange = Sheets ("Sheet1"). Range ("A1: C10") Set destrange = ActiveCell sourceRange.Copy destrange End Sub Sub CopyToActiveCellValues ​​() Atenuar sourceRange como rango Atenuar destrange como rango si Selection.Cells.Count> 1 Luego salir del subconjunto sourceRange = Sheets ("Sheet1"). Range ("A1: C10") Con sourceRange Establecer destrange = ActiveCell.Resize _ (.Rows.Count, .Columns.Count) Finalizar con destrange.Value = sourceRange.Value Finalizar subfunción LastRow (sh As Worksheet) En caso de error Reanudar Next LastRow = sh.Cells.Find (What: = "*", _ Después: = 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

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave