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:
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:
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:
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!Learn More!