Wie kopiere ich eine excel-datei mit vba?
Sie können VBA-Code verwenden, um eine Datei (Arbeitsmappe) von einem Ordner in einen anderen zu kopieren, oder Sie können eine Datei auch unter einem anderen Namen in denselben Ordner kopieren.
In diesem Tutorial erfahren Sie, wie Sie Code in beide Richtungen schreiben. Hier müssen Sie das FileSystemObject verwenden, das den Zugriff auf Dateien und Ordner in Windows ermöglicht.
Kopieren Sie eine Excel-Datei in einen separaten Ordner
Sub myMacro() Dim myFile As Object Set myFile = CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True) End Sub
So schreiben Sie den obigen Code:
- Zuerst müssen Sie eine Variable deklarieren.
- Als Nächstes müssen Sie das FileSystemObject für die Variable angeben, die Sie gerade definiert haben.
- Als nächstes müssen Sie den Quellspeicherort in der Methode „CopyFile“ festlegen.
- Legen Sie abschließend den Speicherort des Ordners fest, in den Sie ihn einfügen möchten.
Wenn Sie dieses Makro ausführen , kopiert es die „Textdatei“ der Excel-Arbeitsmappe aus dem Ordner und fügt sie an dem im Code angegebenen Speicherort ein.
Kopieren Sie eine Datei und benennen Sie sie um
Wenn Sie versuchen, eine Datei zu kopieren und am selben Speicherort einzufügen, besteht eine gute Chance, dass VBA Ihnen einen Fehler anzeigt. In diesem Fall ist es am besten, die Datei beim Kopieren umzubenennen.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)
Oben ist der Zeilencode, den ich in der vorherigen Methode verwendet habe. Jetzt müssen Sie nur noch diese Zeile ändern. Als Zielspeicherort müssen Sie die Datei hinzufügen, die Sie für die neue Datei verwenden möchten.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)
Wenn Sie diesen Code ausführen, kopiert er die Datei (text-file.xlsx) aus dem Ordner und kopiert sie in denselben Ordner mit einem anderen Namen (test-file1.xlsx).
Dim myFile As Object Set myFile = _ CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _ "C:\Users\admin\Desktop\folder\test-file1.xlsx", True) End Sub