Das Kopieren von Arbeitsblättern in Excel ist eine der am meisten benötigten Vorgänge bei der Arbeit mit dieser Anwendung. Wenn Sie mit großen Datenmengen und häufig wiederkehrenden Vorgängen arbeiten, können VBA-Skripte Ihre Arbeit erheblich vereinfachen. In diesem Artikel werden hilfreiche Tipps und Anleitungen zum Kopieren von Kacheln mit VBA behandelt.
Eine der häufigsten Methoden zum Kopieren von Arbeitsblättern nach Excel ist die Verwendung der Methode ActiveSheet.Copy. Diese Methode hat jedoch einige Einschränkungen und kann zu unerwünschten Ergebnissen führen. Es wird empfohlen, den folgenden Code zu verwenden, um die Kacheln präziser und flexibler zu kopieren:
In diesem Code erstellen wir ein Objekt ws, das eine Kopie des Arbeitsblatts "Sheet1" ist. Dann verwenden wir die Methode Copy um eine Kopie des Blattes zu erstellen, geben Sie mit dem Parameter den Speicherort an, an dem die Kopie erstellt werden soll After. Auf diese Weise können Sie Arbeitsblätter aus einer Excel-Arbeitsmappe in eine andere kopieren oder Arbeitsblätter mehrmals kopieren.
Kopieren von Arbeitsblättern in Excel VBA: Tipps und Anleitungen
In Visual Basic für Applikationen (VBA) können Makros verwendet werden, um doppelte Aufgaben in Excel zu automatisieren, einschließlich des Kopierens von Arbeitsblättern. Das Klonen von Plänen kann nützlich sein, wenn Sie mehrere Kopien desselben Plans erstellen möchten, die gleichzeitig die Formatierung und den Inhalt beibehalten. Diese Anleitung enthält nützliche Tipps und Codebeispiele zum Kopieren von Arbeitsblättern in VBA.
1. Verwenden der Add-Methode und des After-Parameters
Eine Möglichkeit, ein Blatt in VBA zu kopieren, besteht darin, die Add-Methode des Sheets-Objekts zu verwenden und den After-Parameter anzugeben, um die Position zu bestimmen, an der die Kopie des Blattes hinzugefügt werden soll.
Sub CopySheet()Sheets("Лист1").Copy After:=Sheets("Лист2")End Sub
2. Verwenden der Copy-Methode und der Parameter Before und After
Eine andere Möglichkeit besteht darin, die Copy-Methode zum Erstellen einer Kopie des Arbeitsblatts und die Before- und After-Methoden zum Festlegen der Position der Kopie zu verwenden.
Sub CopySheet()Sheets("Лист1").Copy Before:=Sheets("Лист2")End Sub
3. Verwenden einer Schleife zum Kopieren mehrerer Blätter
Wenn Sie mehrere Blätter kopieren möchten, können Sie die Schleife verwenden, um den Kopiervorgang erneut durchzuführen. Im Folgenden finden Sie ein Beispiel, das veranschaulicht, wie Sie einen Bereich von Arbeitsblättern kopieren.
Sub CopySheets()Dim ws As WorksheetFor Each ws In Sheets(Array("Лист1", "Лист2", "Лист3"))ws.Copy After:=Sheets(Sheets.Count)Next wsEnd Sub
4. Name des zu kopierenden Blatts
Wenn Sie ein Arbeitsblatt kopieren, können Sie mithilfe der Name-Eigenschaft des Worksheet-Objekts einen neuen Namen für die Kopie definieren.
Sub CopySheetAndRename()Dim newSheet As WorksheetSet newSheet = Sheets("Лист1").Copy(After:=Sheets("Лист2"))newSheet.Name = "Копия Листа 1"End Sub
5. Löschen kopierter Daten
Standardmäßig werden beim Kopieren eines Arbeitsblatts auch Daten in VBA kopiert. Wenn Sie nur die Formatierung kopieren und keine Daten kopieren müssen, können Sie die ClearContents-Methode verwenden, um den Inhalt des kopierten Arbeitsblatts zu löschen.
Sub CopySheetWithoutData()Dim newSheet As WorksheetSet newSheet = Sheets("Лист1").Copy(After:=Sheets("Лист2"))newSheet.ClearContentsEnd Sub
Dies sind nur einige Codebeispiele zum Kopieren von Arbeitsblättern in Excel VBA. Verwenden Sie diese Tipps und Anweisungen in Ihren Projekten, um die Arbeitsblätter einfach in Excel zu kopieren und anzupassen.
Wie kopiere ich ein Arbeitsblatt in Excel VBA
Das Kopieren eines Arbeitsblatts in Excel VBA kann in vielen Situationen nützlich sein. Sie können beispielsweise ein Arbeitsblatt kopieren, um eine separate Version zur Bearbeitung zu erstellen oder eine Kopie des Arbeitsblatts aus Sicherheitsgründen an einem anderen Ort zu speichern. In diesem Abschnitt erfahren Sie, wie Sie ein Arbeitsblatt mit VBA-Code kopieren.
Um zu beginnen, geben Sie das Blatt an, das Sie kopieren möchten. Verwenden Sie dazu das Sheets-Objekt und geben Sie den Namen des Blatts an:
Dim sourceSheet As WorksheetSet sourceSheet = Sheets("Имя_исходного_листа")
Erstellen Sie anschließend mit der Add-Methode des Sheets-Objekts ein neues Arbeitsblatt für eine Kopie des Arbeitsblatts :
Dim targetSheet As WorksheetSet targetSheet = Sheets.Add
Verwenden Sie nun die Eigenschaft, um den Inhalt und die Formatierung des ursprünglichen Arbeitsblatts in das neue Arbeitsblatt zu kopieren .UsedRange und Methode .Copy :
sourceSheet.UsedRange.Copy targetSheet.Cells(1, 1)
Dadurch werden alle Zellen, die Daten und Formatierungen enthalten, vom ursprünglichen Arbeitsblatt in eine neue Kopie des Arbeitsblatts kopiert.
Wenn Sie nur die Daten und nicht die Formatierung speichern müssen, können Sie die Methode verwenden .Value zum Kopieren von Zellenwerten:
targetSheet.Cells(1, 1).Value = sourceSheet.UsedRange.Value
Wenn Sie nur die Formatierung benötigen, verwenden Sie die Methode .Copy mit nur Zellenformatierung:
sourceSheet.UsedRange.CopytargetSheet.Cells(1, 1).PasteSpecial xlPasteFormatsApplication.CutCopyMode = False
Nachdem der Kopiervorgang abgeschlossen ist, können Sie die Kopie des Arbeitsblatts bei Bedarf mit der Eigenschaft .Name umbenennen :
targetSheet.Name = "Новое_имя_листа"
Sie können das kopierte Blatt auch mithilfe einer Eigenschaft ausblenden oder einblenden.Visible :
targetSheet.Visible = True ' отобразить скопированный листtargetSheet.Visible = False ' скрыть скопированный лист
Wenn Sie diese einfachen Schritte befolgen, können Sie die Arbeitsblätter einfach in Excel VBA kopieren und verschiedene Operationen mit den Arbeitsblattkopien in Ihren Makros ausführen.
Optionen zum Kopieren von Kacheln mit VBA
Die integrierte VBA-Funktionalität in Excel ermöglicht das einfache Kopieren von Arbeitsblättern innerhalb derselben Arbeitsmappe oder zwischen verschiedenen Arbeitsmappen. Dies kann nützlich sein, wenn Sie mehrere Kopien desselben Arbeitsblatts erstellen oder das Arbeitsblatt in eine andere Arbeitsmappe verschieben möchten. Hier sind einige Optionen zum Kopieren von Arbeitsblättern mit VBA:
1. Kopieren eines Blattes in einer Arbeitsmappe:
Sub CopySheetWithinWorkbook()Dim srcSheet As WorksheetDim dstSheet As Worksheet' Установите ссылки на исходный и целевой листыSet srcSheet = ThisWorkbook.Sheets("Исходный лист")Set dstSheet = ThisWorkbook.Sheets("Целевой лист")' Копируйте листsrcSheet.Copy After:=dstSheetEnd Sub
2. Kopieren eines Arbeitsblatts in eine andere Arbeitsmappe:
Sub CopySheetToAnotherWorkbook()Dim srcSheet As WorksheetDim dstWorkbook As Workbook' Установите ссылку на исходный листSet srcSheet = ThisWorkbook.Sheets("Исходный лист")' Откройте целевую книгуSet dstWorkbook = Workbooks.Open("Путь к целевой книге.xlsx")' Копируйте лист в целевую книгуsrcSheet.Copy After:=dstWorkbook.Sheets(dstWorkbook.Sheets.Count)' Закройте целевую книгуdstWorkbook.Close SaveChanges:=TrueEnd Sub
3. Ein Blatt in eine neue Arbeitsmappe kopieren:
Sub CopySheetToNewWorkbook()Dim srcSheet As WorksheetDim dstWorkbook As Workbook' Установите ссылку на исходный листSet srcSheet = ThisWorkbook.Sheets("Исходный лист")' Создайте новую книгуSet dstWorkbook = Workbooks.Add' Копируйте лист в новую книгуsrcSheet.Copy After:=dstWorkbook.Sheets(dstWorkbook.Sheets.Count)' Закройте новую книгуdstWorkbook.Close SaveChanges:=TrueEnd Sub
Sie können diese Beispiele in Ihrer Arbeit mit Excel-Arbeitsmappen verwenden und sie an Ihre Bedürfnisse anpassen. Das Kopieren von Arbeitsblättern mit VBA kann Ihre Arbeit mit den Daten erheblich vereinfachen und den Prozess zum Erstellen und Formatieren von Arbeitsblättern in Excel beschleunigen.
Wie kopiere ich ein Blatt an eine bestimmte Position mit VBA
In Excel VBA können Sie Arbeitsblätter kopieren und in verschiedene Teile der Arbeitsmappe verschieben. Häufig ist es notwendig, ein Blatt an eine bestimmte Position unter den vorhandenen Blättern zu kopieren. Dazu können Sie die Copy-Methode und die After-Eigenschaft des Arbeitsblattobjekts verwenden.
Sub КопироватьЛист()Dim ЛистИсходный As WorksheetDim ЛистНовый As WorksheetDim Позиция As Integer' Устанавливаем ссылку на исходный листSet ЛистИсходный = ThisWorkbook.Sheets("Исходный лист")' Определяем позицию, после которой нужно вставить новый листПозиция = 2' Копируем лист в новый листЛистИсходный.Copy After:=ThisWorkbook.Sheets(Позиция)' Устанавливаем ссылку на новый листSet ЛистНовый = ThisWorkbook.Sheets(Позиция + 1)' Меняем название нового листаЛистНовый.Name = "Новый лист"End Sub
In diesem Beispiel wird davon ausgegangen, dass Sie bereits über eine Arbeitsmappe mit dem Arbeitsblatt "Quellblatt" verfügen. Wir kopieren dieses Blatt und fügen es nach dem zweiten Blatt ein (Position 2). Dann ändern wir den Namen des neuen Blattes in "Neues Blatt". Sie können den Namen des Blattes und die Position entsprechend Ihren Anforderungen ändern.
Mit diesem Code können Sie das Arbeitsblatt einfach und schnell mit VBA an die gewünschte Position in Excel kopieren.
| Das Objekt | Methode/Eigenschaft | Die Beschreibung |
|---|---|---|
| Worksheet | Copy | Die Methode, die das Blatt kopiert. |
| Worksheet | After | Eine Eigenschaft, die die Position angibt, nach der das neue Blatt eingefügt werden soll. |