Kopieren Sie eine Spalte oder Spalten in ein Datenbankblatt mit VBA in Microsoft Excel

Anonim
  • Die Beispielcodes werden in ein Datenbankblatt mit dem Namen Sheet2 kopiert.
  • Jedes Mal, wenn Sie eines der Subs ausführen, werden die Zellen unter der letzten Zeile mit Daten oder nach der letzten Spalte mit Daten in Blatt2 platziert.
  • Für jedes Beispiel gibt es ein Makro, das eine normale Kopie durchführt und eines, das nur die Werte kopiert.
  • Die Beispiel-Subs verwenden die folgenden Funktionen (die Makros funktionieren nicht ohne die Funktionen).

Denken Sie daran, dass Excel nur 256 Spalten enthält

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 ("Sheet1").Columns("A:A") Set destrange = Sheets("Sheet2").Columns(Lc). _ Resize(, sourceRange.Columns.Count) desstrange.Value = sourceRange.Value End Sub Function LastRow(sh als Arbeitsblatt) Bei Fehler Fortsetzen 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 End Function Function Lastcol(sh Als Arbeitsblatt) On Error Resume Next 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