Makro zum Verschieben oder Kopieren von Daten zwischen Excel-Arbeitsmappen

In diesem Artikel erfahren Sie, wie Sie mithilfe von VBA Daten in Microsoft Excel kopieren oder zwischen Arbeitsblättern übertragen . In diesem speziellen Beispiel lernen Sie auch, wie Sie Daten mithilfe einer Anfügeabfrage kombinieren. Mit dieser Kombination von Aufgaben können Sie Daten in vorhandenen Arbeitsblättern kombinieren, um die Analyse zu vereinfachen.

Makro zum Verschieben oder Kopieren von Daten in Excel

Angenommen, Sie müssen Daten aus einer Arbeitsmappe kopieren und dann den Inhalt in eine andere Arbeitsmappe ändern. In diesem Beispiel hat Arbeitsmappe eins (die Quellarbeitsmappe) 1 2 3 4 5 und Arbeitsmappe zwei 6 7 8 9 0 .

Nach dem Ausführen des Makros sollte Arbeitsmappe zwei 6 7 8 9 0 1 2 3 4 5 haben . Die Formate beider Arbeitsmappen sind identisch.

Hier ist ein Makro, mit dem Sie Ihre Daten übertragen und anhängen können. (Stellen Sie sicher, dass Sie den HINWEIS im Code gelesen haben):

 Sub CopyData ()

Dim sBook_t As String

Dim sBook_s As String

Dim sSheet_t As String

Dim sSheet_s As String

Dim lMaxRows_t As Long

Dim lMaxRows_s As Long

Dim sMaxCol_s As String

Dim sRange_t As String

Dim sRange_s As String

sBook_t = "Zieldaten WB - Daten nach WB.xls kopieren"

sBook_s = "Quelldaten WB - Daten nach WB.xls kopieren"

sSheet_t = "Ziel-WB"

sSheet_s = "Quelle"

lMaxRows_t = Arbeitsmappen (sBook_t) .Sheets (sSheet_t) .Cells (Rows.Count, "A"). End (xlUp) .Row

lMaxRows_s = Arbeitsmappen (sBook_s) .Sheets (sSheet_s) .Cells (Rows.Count, "A"). End (xlUp) .Row

sMaxCol_s = Arbeitsmappen (sBook_s) .Sheets (sSheet_s) .Cells (1, Columns.Count) .End (xlToLeft) .Address

sMaxCol_s = Mid (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)

If (lMaxRows_t = 1) Then

sRange_t = "A1:" & sMaxCol_s & lMaxRows_s

sRange_s = "A1:" & sMaxCol_s & lMaxRows_s

Arbeitsmappen (sBook_t) .Sheets (sSheet_t) .Range (sRange_t) = Arbeitsmappen (sBook_s) .Sheets (sSheet_s) .Range (sRange_s) .Value

Sonst

sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)

sRange_s = "A2:" & sMaxCol_s & lMaxRows_s

Arbeitsmappen (sBook_t) .Sheets (sSheet_t) .Range (sRange_t) = Arbeitsmappen (sBook_s) .Sheets (sSheet_s) .Range (sRange_s) .Value

' ###################### HINWEIS #################

'Folgende Zeilen sollen von der Seriennummer verwendet werden soll auch fixiert werden, anstatt kopiert zu werden

'Wenn dies nicht erforderlich ist, löschen Sie die folgende Zeile

Arbeitsmappen (sBook_t) .Sheets (sSheet_t) .Range ("A" & lMaxRows_t) .AutoFill Destination: = Arbeitsmappen (sBook_t) .Sheets (sSheet_t) .Range ("A" & lMaxRows_t & ": A" & lMaxRows_t + lMaxRows_t - 1)), Typ: = xlFillSeries

End If

End Sub

Vorherige Artikel Nächster Artikel

Top-Tipps