Kopieer een kolom of kolommen naar een databaseblad met VBA in Microsoft Excel

Anonim
  • De voorbeeldcodes worden gekopieerd naar een databaseblad met de naam Blad2.
  • Elke keer dat u een van de subs uitvoert, worden de cellen onder de laatste rij met gegevens of na de laatste kolom met gegevens in blad2 geplaatst.
  • Voor elk voorbeeld is er een macro die een normale kopie maakt en een die alleen de waarden kopieert.
  • De voorbeeldsubs gebruiken de onderstaande functies (de macro's werken niet zonder de functies).

Onthoud dat er slechts 256 kolommen in Excel zijn

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 ("Blad1").Columns("A:A") Set destrange = Sheets("Blad2").Columns(Lc). _ Resize(, sourceRange.Columns.Count) destrange.Value = sourceRange.Value End Sub Function LastRow(sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find(What:="*", _ After:=sh .Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Rij bij fout GoTo 0 End Function Function Lastcol(sh Als werkblad) Bij fout Hervatten Volgende Lastcol = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder: =xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False). Kolom bij fout GoTo 0 Functie beëindigen