Zum Hauptinhalt springen

Wie kopiere ich ein Arbeitsblatt in Excel VBA in ein anderes Arbeitsblatt

Mithilfe von VBA-Makros (Visual Basic für Applikationen) in Excel können Sie doppelte Aufgaben automatisieren und die Arbeit mit Dokumenten erheblich vereinfachen. Eine dieser Aufgaben kann das Kopieren von Daten von einem Arbeitsblatt in ein anderes in einer Excel-Arbeitsmappe sein. In diesem Artikel werden wir uns ansehen, wie Sie dies mit VBA tun können.

Der erste Schritt zum Kopieren eines Arbeitsblatts in Excel VBA besteht darin, das Quell- und Zielblatt zu definieren. Das Quellblatt ist das, von dem wir die Daten kopieren möchten, und das Ziel ist das, in das wir die Daten kopieren möchten. Dazu verwenden wir in VBA "Worksheet" -Objekte, bei denen es sich um separate Arbeitsblätter in einer Excel-Arbeitsmappe handelt.

Verwenden Sie die folgende Syntax, um das Quell- und Zielblatt in VBA zu deklarieren:

Dim sourceSheet As Worksheet

Dim targetSheet As Worksheet

Nachdem die Blätter deklariert wurden, können wir die Methode "Copy" verwenden, um die Daten vom Quellblatt in das Zielblatt zu kopieren. Diese Methode verwendet einen einzelnen Parameter - das Blatt, in das die Daten kopiert werden sollen:

sourceSheet.Copy Before:=targetSheet

Wenn dieser Code ausgeführt wird, erstellt Excel ein neues Arbeitsblatt, das eine exakte Kopie des ursprünglichen Arbeitsblatts ist, und legt es vor das Zielblatt. Wir können auch die Option "After" anstelle von "Before" verwenden, um das kopierte Blatt nach dem Zielblatt zu platzieren.

Auf diese Weise können wir mit VBA in Excel Daten leicht von einem Arbeitsblatt in ein anderes kopieren. Dies ist besonders nützlich, wenn Sie sich wiederholende Aufgaben ausführen müssen, die das Kopieren von Daten erfordern, z. B. das Erstellen von Berichten oder das Analysieren großer Datenmengen. Mithilfe von VBA-Makros können Sie die Zeit erheblich reduzieren und den Arbeitsablauf mit Daten in Excel verbessern.

Grundlagen zum Kopieren eines Arbeitsblatts in Excel VBA

In Excel VBA können Sie ein Arbeitsblatt mit dem Worksheet-Objekt und seiner Copy-Methode in ein anderes Arbeitsblatt kopieren. Dies kann nützlich sein, wenn Sie eine Kopie eines vorhandenen Arbeitsblatts erstellen oder in ein anderes Arbeitsblatt verschieben möchten.

Um zu beginnen, müssen Sie Objekte für zwei Arbeitsblätter definieren: das Quellblatt, das Sie kopieren möchten, und das Zielblatt, in das Sie das Quellblatt kopieren möchten. Sie können dies mit dem folgenden Code tun:

Dim sourceSheet As WorksheetDim targetSheet As WorksheetSet sourceSheet = ThisWorkbook.Worksheets("Исходный лист")Set targetSheet = ThisWorkbook.Worksheets("Целевой лист")

Als nächstes können Sie die Copy-Methode des Worksheet-Objekts verwenden, um das Quellblatt in das Zielblatt zu kopieren. So sieht der Code für diese Operation aus:

sourceSheet.Copy Destination:=targetSheet

Nachdem dieser Code ausgeführt wurde, wird das Quellblatt in das Zielblatt kopiert, wobei alle seine Daten, Formatierungen und Einstellungen beibehalten werden. Wenn das Zielblatt bereits Daten enthält, werden diese mit den neuen Daten aus dem Quellblatt überschrieben.

Sie können auch die Copy-Methode verwenden, um Parameter zu übergeben, um Daten zu übertragen, zu formatieren und zu konfigurieren. Zum Beispiel:

sourceSheet.Copy Destination:=targetSheet, _Before:=Worksheets("Другой лист") ‘ Permet de copier avant un autre Sheet.

In diesem Fall wird das ursprüngliche Blatt vor das angegebene Blatt kopiert, nicht darauf. Sie können auch andere Parameter wie After, Before, Count und andere verwenden, um die Position des neuen Arbeitsblatts in der Arbeitsmappe zu steuern.

Das Kopieren eines Arbeitsblatts in Excel VBA ist eine nützliche Funktion, mit der Sie Aufgaben zum Kopieren und Verschieben von Daten zwischen verschiedenen Arbeitsblättern automatisieren können. Verwenden Sie die obigen Grundlagen, um mit dem Kopieren von Arbeitsblättern in Ihren eigenen VBA-Makros zu experimentieren.

Erstellen eines neuen Arbeitsblatts

Verwenden Sie die Methode, um ein neues Arbeitsblatt in Excel VBA zu erstellen Add Objekts Sheets. Mit dieser Methode können Sie einer Excel-Arbeitsmappe ein neues Arbeitsblatt hinzufügen.

Hier ist ein Beispiel für die Verwendung der Methode Add so erstellen Sie ein neues Arbeitsblatt:

Wenn Sie diesen Code ausführen, wird ein neues Arbeitsblatt in der Excel-Arbeitsmappe erstellt.

Standardmäßig wird am Ende der Arbeitsmappe ein neues Arbeitsblatt hinzugefügt. Jedoch ist die Methode Add Sie können auch die Position angeben, an der ein neues Blatt hinzugefügt werden soll.

Wenn Sie beispielsweise am Anfang einer Arbeitsmappe ein neues Arbeitsblatt hinzufügen möchten, können Sie den folgenden Code verwenden:

vba Sheets.Add Before:=Sheets(1)

In diesem Beispiel wird ein neues Blatt vor dem ersten Blatt in der Arbeitsmappe hinzugefügt.

Auch die Methode Add Sie können andere Parameter übergeben, z. B. den Namen des neuen Arbeitsblatts und die Vorlage zum Erstellen des Arbeitsblatts. Wenn Sie beispielsweise ein neues Arbeitsblatt mit dem Namen "Neues Arbeitsblatt" erstellen und die Arbeitsblattvorlage "Blatt 2" verwenden möchten, können Sie den folgenden Code verwenden:

vba Sheets.Add After:=Sheets("Blatt 2"), Name:="Neues Blatt"

In diesem Beispiel wird das neue Arbeitsblatt nach dem Arbeitsblatt "Blatt 2" hinzugefügt und hat den Namen "Neues Arbeitsblatt".

Daher ist die Verwendung der Methode Add Objekts Sheets macht es einfach, neue Arbeitsblätter in Excel VBA zu erstellen.

Auswählen des Quellblatts

Um ein Arbeitsblatt in ein anderes in Excel VBA zu kopieren, müssen Sie das ursprüngliche Arbeitsblatt auswählen, das in das andere Arbeitsblatt kopiert werden soll. Dazu können verschiedene Methoden verwendet werden.

Eine Möglichkeit besteht darin, das Quellblatt anhand seines Namens auszuwählen. Jedes Arbeitsblatt in Excel hat einen eindeutigen Namen, sodass Sie darauf zugreifen können, indem Sie seinen Namen als Zeichenfolge verwenden. Wenn das Quellblatt beispielsweise "Blatt1" heißt, sieht der Code zum Auswählen dieses Blatts folgendermaßen aus:

Dim sourceSheet As WorksheetSet sourceSheet = ThisWorkbook.Sheets("Лист1")

In diesem Fall enthält die Variable "sourceSheet" einen Verweis auf das Arbeitsblatt mit dem Namen "Tabelle1".

Wenn Sie den genauen Namen des Blattes nicht kennen, aber dessen Sequenznummer kennen, können Sie das ursprüngliche Blatt anhand seines Index auswählen. Die Blattindizierung beginnt bei 1. Um beispielsweise das erste Arbeitsblatt auszuwählen, sieht der Code folgendermaßen aus:

Dim sourceSheet As WorksheetSet sourceSheet = ThisWorkbook.Sheets(1)

In diesem Fall enthält die Variable "sourceSheet" einen Verweis auf das erste Blatt in der Arbeitsmappe.

Sie können das Quellblatt auch mithilfe eines Workbook-Objekts auswählen. Wenn Sie beispielsweise einen Verweis auf eine Arbeitsmappe mit dem Namen "Arbeitsmappe 1" haben, sieht der Code zum Auswählen des Quellblatts folgendermaßen aus:

Dim sourceSheet As WorksheetSet sourceSheet = Workbooks("Книга1").Sheets("Лист1")

In diesem Fall enthält die Variable "sourceSheet" einen Verweis auf das Arbeitsblatt mit dem Namen "Tabelle1" in der Arbeitsmappe mit dem Namen "Tabelle1".

Wie aus den Beispielen ersichtlich ist, können Sie das Quellblatt in Excel VBA auf verschiedene Arten auswählen, je nachdem, welche Daten Sie zur Identifizierung zur Verfügung haben.

Kopieren von Daten in ein neues Arbeitsblatt

Um die Daten in ein neues Arbeitsblatt in Excel VBA zu kopieren, können Sie den folgenden Code verwenden:

Sub CopyDataToNewSheet() Dim sourceSheet As Worksheet Dim targetSheet As Worksheet ' Geben Sie das Quell- und Zielblatt an Set sourceSheet = ThisWorkbook.Sheets("Quellblatt") Set targetSheet = ThisWorkbook.Sheets.Add ' Wir kopieren die sourceSheet-Daten.UsedRange.Copy Destination:=targetSheet.Range("A1") End Sub

In diesem Code verwenden wir ein Worksheet-Objekt für das Quell- und Zielblatt. Dann geben wir das ursprüngliche Blatt an und erstellen ein neues Blatt mit der Sheets-Methode.Add ().

Dann verwenden wir die Copy-Methode für das UsedRange-Objekt und geben den Zielbereich A1 auf dem neuen Arbeitsblatt an, um die Daten einzufügen. Die Daten werden nun in das neue Arbeitsblatt kopiert.

Sie können den Namen und die Position des Zielblatts ändern und andere Formatierungen und Aktionen für die Daten nach Ihrem Ermessen anwenden.

Kopieren von Daten in ein neues Arbeitsblatt in Excel VBA ist ein leistungsfähiges Werkzeug, mit dem Sie einfach Kopien der ursprünglichen Daten erstellen können, ohne das Original zu ändern.

Kopieren der Formatierung in ein neues Arbeitsblatt

Wenn Sie die Formatierung in Excel VBA von einem Arbeitsblatt in ein anderes kopieren müssen, können Sie die im Range-Objekt verfügbaren Methoden verwenden.

Verwenden Sie zunächst das Range-Objekt, um eine Auswahl auf dem Quellblatt zu erstellen:

  • Set sourceRange = Sheets("Quellblatt").Range("A1:D10")

Hier wählen wir die Zellen A1 bis D10 im Blatt "Quellblatt" aus. Sie können diese Werte je nach Ihren Bedürfnissen ändern.

Erstellen Sie dann ein neues Arbeitsblatt, in das Sie die Formatierung aus dem ursprünglichen Arbeitsblatt kopieren möchten:

  • Set destinationSheet = Sheets.Add
  • destinationSheet.Name = "Neues Blatt"

Wir erstellen ein neues Blatt und geben ihm den Namen "Neues Blatt". Sie können diesen Namen nach Belieben ändern.

Kopieren Sie anschließend die Formatierung mithilfe der Copy-Methode vom ursprünglichen Arbeitsblatt in das neue Arbeitsblatt:

  • sourceRange.Copy Destination:=destinationSheet.Cells(1, 1)

Hier kopieren wir die Formatierung aus dem ursprünglichen Arbeitsblatt in ein neues Arbeitsblatt, beginnend mit der Zelle A1 im neuen Arbeitsblatt.

Wenn Sie diese Schritte ausführen, wird die Formatierung aus dem ursprünglichen Arbeitsblatt in das neue Arbeitsblatt in Excel VBA kopiert.

Kopieren von Formeln in ein neues Arbeitsblatt

Im Folgenden finden Sie einen Beispielcode, der Formeln aus dem Arbeitsblatt "Quellblatt" in das Arbeitsblatt "Neues Arbeitsblatt" kopiert:

Sub Копирование_формул()Dim Лист1 As WorksheetDim Лист2 As Worksheet' Определение листовSet Лист1 = ThisWorkbook.Worksheets("Исходный лист")Set Лист2 = ThisWorkbook.Worksheets("Новый лист")' Копирование формулЛист1.Cells.Copy Destination:=Лист2.Cells' Обновление формулЛист2.EnableCalculation = FalseЛист2.EnableCalculation = TrueEnd Sub

In diesem Beispiel:

  • Die Variablen Tabelle1 und Tabelle2 werden als Worksheet-Typ deklariert.
  • Verwenden Sie die ThisWorkbook-Methode.Worksheets("Quellblatt") und ThisWorkbook.Worksheets("Neues Arbeitsblatt") definiert die gewünschten Arbeitsblätter.
  • Cells-Methode.Copy Destination:=Blatt2.Cells kopiert alle Zellen mit Formeln von Tabelle1 in Tabelle2 .
  • Code Blatt2.EnableCalculation = False und Tabelle2.EnableCalculation = True aktualisiert Formeln in Tabelle2, um sie korrekt zu berechnen.

Nachdem der Code im "Neuen Arbeitsblatt" ausgeführt wurde, werden alle Formeln aus dem "Ursprünglichen Arbeitsblatt" kopiert, und sie werden automatisch aktualisiert, wenn sich die Daten ändern.