Copie un rango con un área 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 CopyOneArea () Atenuar sourceRange como rango Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Establecer sourceRange = Sheets ("Sheet1"). Range ("A1: c10") Establecer destrange = Hojas ("Hoja2"). Rango ("A" y Lr) fuenteRango. Copiar destrange End Sub Sub CopyOneAreaValues ​​() Dim sourceRange As Range Dim Destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Establecer sourceRange = Sheets ("Sheet1"). Range ("A1: c10") Con sourceRange Establecer destrange = Sheets ("Sheet2"). Range ("A" & Lr). _ Resize (.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub Function 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 Función 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