ich möchte per VBA Dateien (A.xls und B.xls) eines bestimmten Ordners vom Laufwerk C: zum Laufwerk D: (selber Ordnername) verschieben. Vorhandene gleichnamige Datein sollen ohne Meldung ersetzt werden.
DAnke für die Hilfe.
Andrea
Sub Move_File()
Dim myFSO As Object
Dim qFolder As String, tFolder As String
Dim qFile As String
qFile = "test.xls"
qFolder = "C:\Test\"
tFolder = "D:\Test\"
'Kill tFolder & qFile
Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.movefile qFolder & qFile, tFolder & qFile
'Alternativ kopieren
'myFSO.copyfile qFolder & qFile, tFolder & qFile, True
End Sub
Um Dateien mithilfe von VBA zu kopieren oder zu verschieben, kannst Du den folgenden VBA-Code verwenden. Dieser Code erlaubt es Dir, eine Datei von einem Ordner in einen anderen zu kopieren und dabei gleichnamige Dateien ohne Nachfrage zu überschreiben.
ALT + F11, um den VBA-Editor zu öffnen.Einfügen > Modul.Sub Move_File()
Dim myFSO As Object
Dim qFolder As String, tFolder As String
Dim qFile As String
qFile = "test.xls" ' Name der Datei, die kopiert werden soll
qFolder = "C:\Test\" ' Quellordner
tFolder = "D:\Test\" ' Zielordner
Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.copyfile qFolder & qFile, tFolder & qFile, True ' Überschreibt die Datei
End Sub
qFile, qFolder, und tFolder entsprechend Deinen Bedürfnissen.F5 oder wähle Ausführen > Sub/UserForm ausführen.qFolder korrekt ist und die Datei existiert.tFolder existiert, da der Code keine neuen Ordner erstellt.Eine alternative Möglichkeit, Dateien zu kopieren, besteht in der Verwendung der FileCopy-Methode. Hier ist ein Beispiel:
Sub Copy_File_Alternative()
FileCopy "C:\Test\test.xls", "D:\Test\test.xls"
End Sub
Diese Methode überschreibt jedoch nicht automatisch vorhandene Dateien ohne Nachfrage. Wenn Du dies benötigst, verwende die Scripting.FileSystemObject-Methode, wie oben gezeigt.
Sub Copy_and_Rename()
Dim myFSO As Object
Dim sourceFile As String, targetFile As String
sourceFile = "C:\Test\test.xls"
targetFile = "D:\Test\test_new.xls"
Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.copyfile sourceFile, targetFile, True
End Sub
Sub Move_Excel_File()
Dim myFSO As Object
Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.MoveFile "C:\Test\test.xls", "D:\Test\test.xls"
End Sub
Application.DisplayAlerts = False-Anweisung, um Excel-Warnmeldungen vorübergehend auszublenden, während Du Dateien kopierst oder verschiebst.On Error Resume Next, um Fehler im Code zu ignorieren, aber sei vorsichtig, da dies auch wichtige Fehler übersehen könnte.1. Wie kann ich mehrere Dateien gleichzeitig kopieren?
Du kannst eine Schleife verwenden, um mehrere Dateien zu kopieren. Beispiel:
Sub Copy_Multiple_Files()
Dim myFSO As Object
Dim file As Variant
Dim filesToCopy As Variant
filesToCopy = Array("test1.xls", "test2.xls") ' Dateinamen
Set myFSO = CreateObject("Scripting.FileSystemObject")
For Each file In filesToCopy
myFSO.copyfile "C:\Test\" & file, "D:\Test\" & file, True
Next file
End Sub
2. Kann ich auch von und nach Netzlaufwerken kopieren?
Ja, Du kannst auch von und nach Netzlaufwerken kopieren, solange Du die richtigen Pfade verwendest und Zugriff auf die Netzwerkressourcen hast.