Wie kopiere und verschiebe ich ein blatt mit vba?
Sie können ein Blatt in Excel mit VBA-Code kopieren und verschieben. In diesem Tutorial lernen wir verschiedene Möglichkeiten kennen, dies zu tun.
Kopieren Sie ein Blatt in dieselbe Arbeitsmappe
Wenn Sie ein Blatt in derselben Arbeitsmappe kopieren möchten, können Sie den folgenden Code verwenden, bei dem Sie die Kopiermethode verwendet haben.
Sheets("Sheet5").Copy Before:=Sheets(1)
In diesem Code ist Blatt1 das erste Blatt der Arbeitsmappe. Wenn Sie diesen Code ausführen, wird das Blatt mit dem Namen „Blatt5“ vor das erste Blatt der Arbeitsmappe kopiert.
Und wenn Sie es nach dem ersten Blatt kopieren möchten, lautet der Code wie folgt.
Sheets("Sheet5").Copy After:=Sheets(1)
Und wenn Sie es nach dem ersten Blatt kopieren möchten, lautet der Code wie folgt.
Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")
Wenn Sie diesen VBA-Code ausführen, kopiert er „Sheet5“ vor und nach „Sheet3“.
Mit der folgenden Codezeile können Sie ein Blatt nach dem letzten Blatt der Arbeitsmappe kopieren. Es verwendet sheet.count, um die Anzahl der Blätter zu ermitteln, und verwendet dann die Anzahl, um das letzte Blatt zu kopieren.
Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
Nützliche Links: Ausführen eines Makros – Makrorecorder – Visual Basic Editor – Handbuch zu persönlichen Makros
Kopieren Sie ein Blatt in derselben Arbeitsmappe unter einem neuen Namen
Und wenn Sie ein Blatt kopieren und es dann sofort umbenennen möchten, müssen Sie die Eigenschaft name verwenden, genau wie den folgenden Code.
Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
Verschieben Sie ein Blatt in derselben Arbeitsmappe
Um ein Blatt in derselben Arbeitsmappe zu verschieben, müssen Sie die Verschiebungsmethode wie im folgenden Code verwenden.
Sheets("Sheet5").Move After:=Sheets(1)
Dieser Code verschiebt „Sheet5“ vor „Sheet2“, wie Sie im Schnappschuss oben sehen können.
Kopieren Sie ein Blatt in die neue Arbeitsmappe
Wenn Sie die Kopiermethode verwenden, ohne ein Blatt in der aktuellen Arbeitsmappe zu definieren, öffnet VBA eine neue Arbeitsmappe und kopiert dieses Blatt in diese Arbeitsmappe.
Sheets("Sheet5").Copy
Und um ein Blatt in eine neue Arbeitsmappe zu verschieben.
Sheets("Sheet5").Move
Kopieren Sie mehrere Blätter in die neue Arbeitsmappe
Wenn Sie der neuen Arbeitsmappe mehrere Blätter gleichzeitig hinzufügen möchten, verwenden Sie Code wie diesen.
Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy
Der obige Code erstellt eine Reihe von Blättern und kopiert sie dann alle in eine neue Arbeitsmappe.
Kopieren Sie ein Blatt in eine andere Arbeitsmappe
Wenn Sie ein Blatt in eine andere, bereits geöffnete Arbeitsmappe kopieren möchten, können Sie den Namen der Arbeitsmappe nach oder vor dem Argument angeben.
Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)
Der obige Code kopiert Sheet1 aus der aktiven Arbeitsmappe und fügt es vor dem ersten Blatt von Book1.xlsx hinzu, das bereits geöffnet ist.
Und wenn Sie es verschieben möchten.
Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)
Kopieren Sie ein Blatt in eine geschlossene Arbeitsmappe
Es gibt eine Möglichkeit, ein Blatt in eine geschlossene Arbeitsmappe zu kopieren, ohne dass Sie es öffnen müssen. Schauen Sie sich den Code unten an.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub
In diesem Code haben Sie die Variable myBook und ihr ist dann eine Arbeitsmappe zugewiesen. Wir haben die Bildschirmaktualisierung deaktiviert, damit der Code die Aufgabe im Backend ausführen kann.
Kopieren Sie ein Blatt aus einer anderen Arbeitsmappe, ohne es zu öffnen
Auf die gleiche Weise können Sie ein Blatt aus einer geschlossenen Arbeitsmappe kopieren und verschieben. Schauen Sie sich den Code unten an.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub