Kopieren Sie eine oder mehrere Spalten in einer Datenbank Blatt mit VBA in Microsoft Excel
in ein Datenbankblatt * 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 Blatt 2 platziert.
-
Für jedes Beispiel gibt es ein Makro, das eine normale Kopie ausführt, und eines, das nur die Werte kopiert.
-
Die Beispiel-Subs verwenden die folgenden Funktionen (die Makros funktionieren ohne die Funktionen nicht).
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) 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).Row On Error GoTo 0 End Function Function Lastcol(sh As Worksheet) 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