Copie una columna o columnas a una hoja de base de datos usando VBA en Microsoft Excel

Anonim
  • 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).

Recuerde que solo hay 256 columnas en Excel

Sub CopyColumn () Dim sourceRange As Range Dim destrange As Range Dim Lc As Integer Lc = Lastcol (Sheets ("Sheet2")) + 1 Establecer sourceRange = Sheets ("Sheet1"). Columns ("A: A") Establecer destrange = Sheets ("Sheet2"). Columns (Lc) sourceRange. Copiar destrange End Sub Sub CopyColumnValues ​​() Dim sourceRange As Range Dim destrange As Range Dim Lc As Integer Lc = Lastcol (Sheets ("Sheet2")) + 1 Establecer sourceRange = Sheets ("Hoja1"). Columnas ("A: A") Establecer destrange = Hojas ("Hoja2"). Columnas (Lc). _ Resize (, sourceRange.Columns.Count) destrange.Value = sourceRange.Value End Sub función LastRow (sh As Worksheet) En caso de error Reanudar 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 Fin Función Función Lastcol (sh Como hoja de trabajo) 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