2017-07-27 4 views
1

Ich verwende den folgenden Basiscode, um Dateien von einem Speicherort zu einem anderen zu kopieren.Laufzeitfehler 76: Pfad nicht gefunden

Sub CopyFilesToLocation() 

Dim lRow As Long 
lRow = Cells(Rows.Count, 1).End(xlUp).Row 

For i = 69 To lRow 

    FileCopy Cells(i, 19), "C:\Users\a222012\Desktop\Test\" & Cells(i, 9) & ".pdf" 

Next i 

End Sub 

Zelle (i, 19) enthält einen Hyperlink zu einer PDF-Datei. Ich habe ungefähr 5000 Dateien. Unter Verwendung On Error Resume Next half mir, den Laufzeitfehler zu übergeben und ungefähr 4400 Dateien zu extrahieren. Die restlichen 600 geben den Laufzeitfehler ohne . Die 600 Dateien haben gültige Links, wenn sie angeklickt werden, öffnet sich das PDF. Irgendeine Idee, warum ich den Fehler bekommen würde?

Bearbeiten: Alle Dateien befinden sich auf einem Netzlaufwerk. Beispiel für den Pfad: \\19549dabjnb0002\images\2017.07\11\A217081\20170711095405.pdf

+0

Können wir den Link zu sehen, dass, wenn – sourceCode

+0

Hallo, editierten Nachricht enthalten Beispiel für Link – KoderM16

+1

Ich denke, Ihr Problem ist, dass Sie sich wie 3 \\\ geklickt haben funktioniert, wenn ihr nur 1 sein sollte, Ist der Pfad, den Sie in Zelle 9 oder 19 geschrieben haben, – sourceCode

Antwort

2

FileCopy works quite good. Versuchen Sie, Ihren Code zu etwas Kleinem zu vereinfachen, dann fangen Sie an, von dort zu arbeiten. Und entfernen Sie On Error Resume Next. So etwas sollte funktionieren:

Sub CopyFilesToLocation() 

    Dim strPath As String 

    strPath = "C:\Users\USER\Desktop\" & Cells(2, 1) 
    Debug.Print Cells(1, 1) 
    Debug.Print strPath 

    Stop 'Take a look at the immediate window 
    FileCopy Cells(1, 1), strPath 

End Sub 

Wenn der Code hält, werfen Sie einen Blick auf die unmittelbaren Fenster Ctrl+G.

Bearbeiten: Für das optimierte Verschieben, einfach die beiden Pfade verwenden und die Datei separat hinzufügen. Es schlingt sich leicht:

Option Explicit 
Public Sub TestMe() 

    Dim strPathD As String 'Destination path 
    Dim strPathL As String 'Location path 

    strPathL = "C:\Users\USER\Desktop\" 
    strPathD = "C:\Users\USER\Desktop\NewFolder\" 

    FileCopy strPathL & Cells(1, 1), strPathD & Cells(1, 1) 

End Sub 
+0

Vielen Dank dafür. Dies hat mir geholfen, den Fehler zu finden. Die Zelle, die ich benutzt habe, um die Datei zu benennen, enthielt ein \ und als Ergebnis fügte sie das dem Zielpfad hinzu, der offensichtlich nicht existiert! Danke, Mann! – KoderM16

+0

@ KoderM16 - Sie sind willkommen – Vityata

+0

Gibt es eine Idee, wie ich die Datei mit ihrem aktuellen Namen kopiere, anstatt sie mit einem Zellenwert zu benennen? – KoderM16

Verwandte Themen