Kopieren Sie einen Bereich auf dem Platz des Active zu einer Datenbank Blatt mit VBA in Microsoft Excel
einen Bereich an der Stelle der Activecell 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).
Sub CopyToActiveCell() Dim sourceRange As Range Dim destrange As Range If Selection.Cells.Count > 1 Then Exit Sub Set sourceRange = Sheets("Sheet1").Range("A1:C10") Set destrange = ActiveCell sourceRange.Copy destrange End Sub Sub CopyToActiveCellValues() Dim sourceRange As Range Dim destrange As Range If Selection.Cells.Count > 1 Then Exit Sub Set sourceRange = Sheets("Sheet1").Range("A1:C10") With sourceRange Set destrange = ActiveCell.Resize _ (.Rows.Count, .Columns.Count) End With 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