Kopieren Sie eine oder mehrere Spalten von jedem Blatt in ein Blatt mit VBA in Microsoft Excel
in ein Blatt Manchmal wird es zur Routinearbeit, Daten aus mehreren Blättern für dieselbe Spalte zu kopieren. Dieser Schritt kann durch Automatisierung vermieden werden. Wenn Sie ein konsolidiertes Blatt erstellen möchten, nachdem Sie Daten aus einer Spalte jedes einzelnen Blattes in ein Blatt kopiert haben, sollten Sie diesen Artikel lesen.
In diesem Artikel erstellen wir ein Makro, um Daten aus einer bestimmten Spalte zu kopieren und in ein neues Blatt einzufügen.
Die Rohdaten für dieses Beispiel bestehen aus Mitarbeiterdaten in Form einer Excel-Arbeitsmappe mit drei Blättern mit den Abteilungs-, persönlichen und Kontaktdaten der Mitarbeiter.
Um Daten von verschiedenen Blättern in ein neues Blatt zu kopieren, haben wir ein Makro „CopyColumns“ erstellt. Dieses Makro kann ausgeführt werden, indem Sie auf dem Hauptblatt auf die Schaltfläche „Makro ausführen“ klicken.
Das Makro „CopyColumns“ fügt ein neues Blatt mit dem Namen „Master“ nach dem Blatt „Main“ ein. Das Master-Blatt enthält konsolidierte Daten aus allen Blättern.
Code Erklärung
Worksheets.Add (after: = Arbeitsblätter („Main“))
Der obige Code wird verwendet, um neue Arbeitsblätter nach dem Hauptarbeitsblatt einzufügen.
Wenn Source.Name <> „Master“ und Source.Name <> „Main“, dann wird End If Above-Code verwendet, um das Kopieren von Daten aus den Blättern „Master“ und „Main“ einzuschränken.
Source.UsedRange.Copy Destination.Columns (Last)
Der obige Code wird verwendet, um Daten vom Quellblatt auf das Zielblatt zu kopieren.
Für jede Quelle in ThisWorkbook.Worksheets Wenn Source.Name = „Master“, dann ist MsgBox „Master Sheet bereits vorhanden“
Unterende beenden Wenn der Code „Weiter oben“ verwendet wird, um zu überprüfen, ob das Blatt „Master“ bereits in der Arbeitsmappe vorhanden ist. Das Makro stoppt die Ausführung, wenn das Blatt „Master“ bereits in der Arbeitsmappe vorhanden ist.
Bitte folgen Sie unten für den Code
Option Explicit Sub CopyColumns() Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Checking whether "Master" sheet already exists in the workbook For Each Source In ThisWorkbook.Worksheets If Source.Name = "Master" Then MsgBox "Master sheet already exist" Exit Sub End If Next 'Inserting new worksheets in the workbook Set Destination = Worksheets.Add(after:=Worksheets("Main")) 'Renaming the worksheet Destination.Name = "Master" 'Looping through the worksheets in the workbook For Each Source In ThisWorkbook.Worksheets If Source.Name <> "Master" And Source.Name <> "Main" Then 'Finding the last column from the destination sheet Last = Destination.Range("A1").SpecialCells(xlCellTypeLastCell).Column If Last = 1 Then 'Pasting the data in the destination sheet Source.UsedRange.Copy Destination.Columns(Last) Else Source.UsedRange.Copy Destination.Columns(Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True End Sub
Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]