Kopiera en kolumn eller kolumner till ett databasark med VBA i Microsoft Excel

Anonim
  • Exempelkoderna kopieras till ett databasblad med namnet Sheet2.
  • Varje gång du kör en av delarna placeras cellerna under den sista raden med data eller efter den sista kolumnen med data i blad2.
  • För varje exempel finns det ett makro som gör en normal kopia och ett som bara är Kopiera värdena.
  • Exemplets subs använder funktionerna nedan (makron fungerar inte utan funktionerna).

Kom ihåg att det bara finns 256 kolumner i Excel

Sub CopyColumn () Dim sourceRange As Range Dim destrange As Range Dim Lc As Integer Lc = Lastcol (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Columns ("A: A") Set destrange = Sheets ("Sheet2"). Columns (Lc) sourceRange.Copy destrange End Sub Sub CopyColumnValues ​​() Dim sourceRange As Range Dim destrange As Range Dim Lc As Integer Lc = Lastcol (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Ark1"). Kolumner ("A: A") Ställ in destrange = Sheets ("Sheet2"). Kolumner (Lc). _ Ändra storlek (, sourceRange.Columns.Count) destrange.Value = sourceRange.Value End Sub -funktion LastRow (sh som kalkylblad) Vid fel Återuppta nästa 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 Som kalkylblad) Vid fel Återuppta nästa Lastcol = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Column On Error GoTo 0 Avsluta funktion