Rückkehr in VBA-Code-Beispiele

VBA – Datei/Arbeitsmappe kopieren

In diesem Tutorial zeigen wir Ihnen, wie Sie eine Datei mit VBA kopieren können.

Mit VBA können Sie eine Datei durch Verwendung vom FileSystemObject kopieren.

Wenn Sie lernen möchten, wie man eine Datei umbenennt, können Sie auf diesen Link klicken: VBA – Datei umbenennen

Kopieren einer Datei/Arbeitsmappe

Wir werden Ihnen zeigen, wie Sie die vorhandene Datei Beispieldatei 1.xlsx im Ordner VBA_Ordner kopieren. In diesem Beispiel werden wir die Datei nicht umbenennen, sondern nur kopieren und überschreiben. Der Ordner enthält derzeit nur diese eine Datei:

vba datei kopieren Abbildung 1. Datei im Ordner C:\VBA_Ordner

Hier ist der Code:

Dim oFSO As Object
 
Set oFSO = CreateObject("Scripting.FileSystemObject")
 
Call oFSO.CopyFile("C:\VBA_Ordner\Beispieldatei 1.xlsx", "C:\VBA_Ordner\", True)

Zunächst müssen Sie das Objekt der Klasse Scripting.FileSystemObject erzeugen:

Set oFSO = CreateObject("Scripting.FileSystemObject")

Dann können wir die Methode CopyFile verwenden :

Call oFSO.CopyFile("C:\VBA_Ordner\Beispieldatei 1.xlsx", "C:\VBA_Ordner\", True)

Der erste Parameter der Methode ist der Quellpfad und der zweite ist der Zielpfad. Der dritte Parameter ist Overwrite (Deutsch: Überschreiben). Da wir denselben Quell- und Zielpfad haben, müssen wir Overwrite auf True oder False setzen. In diesem Beispiel setzen wir  ihn auf True, was bedeutet, dass die Originaldatei überschrieben wird. Schauen wir uns nun an, was passiert, wenn wir die gleichen Ziele haben, aber Overwrite auf False setzen. Sie müssen nur diese Codezeile ändern:

Call oFSO.CopyFile("C:\VBA_Ordner\Beispieldatei 1.xlsx", "C:\VBA_Ordner\", True)

Als Ergebnis erhalten Sie eine Fehlermeldung, wie Sie in Abbildung 2 sehen können:

vba datei kopieren fehler Abbildung 2. Fehler beim Kopieren der Datei

Kopieren und Umbenennen einer Datei

Eine weitere Möglichkeit, eine Datei zu kopieren, besteht darin, sie umzubenennen. Es ist ähnlich wie das Kopieren einer Datei, aber jetzt müssen Sie nur den Zielpfad mit einem anderen Namen angeben. Hier ist der Code:

Dim oFSO As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

Call oFSO.CopyFile("C:\VBA_Ordner>\Beispieldatei 1.xlsx", "C:\VBA_Ordner\Beispieldatei - Kopie.xlsx")

Wie Sie aus der letzten Codezeile sehen können, wollen wir die Datei Beispieldatei 1.xlsx in denselben Ordner kopieren und sie Beispieldatei – Kopie.xlsx nennen :

Call oFSO.CopyFile("C:\VBA_Ordner\Beispieldatei 1.xlsx", "C:\VBA_Ordner\Beispieldatei - Kopie.xlsx")

Jetzt haben wir zwei Dateien im Order VBA_Ordner. Das Ergebnis des Codes ist in Abbildung 3 zu sehen:

vba datei kopieren umbenennen Abbildung 3. Datei kopieren und umbenennen

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!