Zum Hauptinhalt springen

Wie kopiere ich Dateien in Excel VBA, ohne sie zu öffnen

Microsoft Excel VBA (Visual Basic for Applications) ist ein leistungsfähiges Werkzeug, mit dem Sie Aufgaben in Excel automatisieren können. Eine solche Aufgabe kann darin bestehen, Dateien zu kopieren, ohne sie öffnen zu müssen. Dies kann besonders nützlich sein, wenn Sie mit großen Datenmengen arbeiten oder wenn die Dateien, die Sie kopieren möchten, Makros oder Skripts enthalten, die beim Öffnen Probleme verursachen können.

Sie können die FileCopy-Methode verwenden, um Dateien nach Excel VBA zu kopieren. Mit dieser Methode können Sie Dateien von einem Ordner in einen anderen kopieren, indem Sie den Pfad zur Quelldatei und den Pfad zur Zieldatei angeben. Der folgende Code kopiert beispielsweise die Datei "example".txt" aus dem Ordner "C:\Source " in den Ordner "C:\Destination ":

FileCopy "C:\Source\example.txt", "C:\Destination\example.txt"

Außerdem können Sie in Excel VBA die Methode "FileSystemObject" zum Kopieren von Dateien verwenden. Diese Methode bietet eine flexiblere Möglichkeit zum Kopieren von Dateien und ermöglicht auch das Kopieren von Ordnern. Um es zu verwenden, müssen Sie zuerst ein FileSystemObject erstellen und dann die Methode "CopyFile" verwenden, um die Datei zu kopieren:

Dim fs As Object

Set fs = CreateObject("Scripting.FileSystemObject")

fs.CopyFile "C:\Source\example.txt", "C:\Destination\example.txt"

Es ist wichtig zu beachten, dass Sie bei Verwendung der Methode "CopyFile" nur eine Quelldatei und nur eine Zieldatei angeben können. Wenn Sie mehrere Dateien gleichzeitig kopieren möchten, müssen Sie eine Schleife verwenden, um die Liste der Dateien zu durchlaufen und die Methode "CopyFile" für jede Datei einzeln aufzurufen.

Kopieren von Dateien in Excel VBA: Lösung ohne Öffnen

Wenn Sie mit Makros in Excel arbeiten, müssen Sie häufig Dateien von einem Ordner in einen anderen kopieren. Die Standardmethoden zum Kopieren von Dateien mithilfe der Copy-Methode oder durch Öffnen und Speichern einer Datei sind jedoch möglicherweise ineffizient, insbesondere wenn Sie mit einer großen Anzahl von Dateien oder großen Dateien arbeiten.

Es gibt eine effizientere Möglichkeit, Dateien in Excel VBA zu kopieren, ohne dass sie geöffnet werden müssen. Dazu können wir ein FileSystemObject verwenden.

FileSystemObject stellt Methoden und Eigenschaften für die Arbeit mit dem Dateisystem bereit, einschließlich des Kopierens von Dateien. Um mit FileSystemObject zu beginnen, müssen Sie einen Verweis auf die Microsoft Scripting Runtime hinzufügen, die dieses Objekt enthält.

Sub CopyFiles()Dim fso As New FileSystemObjectDim sourceFolder As FolderDim destinationFolder As FolderDim file As FileSet sourceFolder = fso.GetFolder("C:\Source")Set destinationFolder = fso.GetFolder("C:\Destination")For Each file In sourceFolder.Filesfso.CopyFile file.Path, destinationFolder.PathNext fileMsgBox "Files copied successfully!"Set fso = NothingEnd Sub

In diesem Beispiel verwenden wir die GetFolder-Methode, um Verweise auf den Quellordner und den Zielordner abzurufen. Dann verwenden wir eine For Each-Schleife, um alle Dateien im Quellordner zu durchlaufen, und kopieren jede Datei mithilfe der CopyFile-Methode in den Zielordner. Am Ende wird eine Meldung angezeigt, dass der Kopiervorgang abgeschlossen ist und das fso-Objekt auf Nothing festgelegt ist.

Daher können wir mit FileSystemObject und seinen Methoden Dateien effizient in Excel VBA kopieren, ohne sie zu öffnen. Dieser Ansatz ist besonders nützlich, wenn Sie mit einer großen Anzahl von Dateien und großen Dateien arbeiten.

Methode mit FileCopy

Sie können die Funktion in VBA verwenden, um Dateien zu kopieren, ohne sie zu öffnen FileCopy. Mit dieser Methode können Sie Dateien schnell und einfach mithilfe von Makros in Excel auf Ihren Computer kopieren.

Bevor Sie die FileCopy-Methode verwenden, müssen Sie sicherstellen, dass Sie über ausreichende Zugriffsrechte für die Dateien und Ordner verfügen, die Sie kopieren möchten.

Die Syntax der FileCopy-Funktion lautet wie folgt:

FileCopy source, destination

  • source - pfad und Name der zu kopierenden Datei (Quelle)
  • destination - pfad und Name der neuen Datei (Kopien)

FileCopy "С:\Исходная Ordner\Datei.xlsx", "С:\Новая Ordner\Datei.xlsx"

In diesem Beispiel kopieren wir die Datei "Datei.xlsx" aus dem Ordner "Quellordner" in den Ordner "Neuer Ordner".

Es ist wichtig zu beachten, dass die FileCopy-Methode der Excel-Tabelle keine neue Zeile mit den Daten hinzufügt, sondern lediglich eine Kopie der Datei auf dem Computer erstellt.

Wenn Sie mehrere Dateien kopieren müssen, können Sie eine Schleife wie die For Each-Schleife verwenden, um alle benötigten Dateien zu durchlaufen und die FileCopy-Funktion auf jede Datei anzuwenden.