2017-07-27 149 views
1

我正在使用下面的基本代碼將文件從一個位置複製到另一個位置。運行時錯誤76:路徑未找到

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 

單元格(i,19)包含指向pdf文件的超鏈接。我有大約5000個文件。使用On Error Resume Next幫助我通過了運行時錯誤並提取了大約4400個文件。其餘的600將全部給出運行時錯誤,沒有On Error Resume Next。這600個文件具有有效的鏈接,點擊後,PDF文件將打開。任何想法爲什麼我會得到錯誤?

編輯:所有文件都在網絡驅動器上。路徑示例: \\19549dabjnb0002\images\2017.07\11\A217081\20170711095405.pdf

+0

我們可以看到點擊 – sourceCode

+0

嗨的時候,後期編輯,包括例如鏈接 – KoderM16

+1

我覺得你的問題是,你有一個像3 \\\時,他們應該只是1的作品的鏈接。是你在單元格9或19中發佈的路徑 – sourceCode

回答

2

FileCopy works quite good。儘量簡化你的代碼,然後從那裏開始工作。並刪除On Error Resume Next。像這樣的東西應該工作:

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 

當代碼停止,看看眼前的窗口Ctrl+G

編輯: 爲了優化移動,只需使用兩個路徑並將文件分別添加到它們。它將循環很容易:

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

謝謝你。這幫助我找到了錯誤。我用來命名文件的單元格包含一個\,因此它將它添加到顯然不存在的目標路徑!謝啦! – KoderM16

+0

@ KoderM16 - 不用客氣 – Vityata

+0

關於如何使用當前名稱複製文件而不是使用單元格值命名文件的想法? – KoderM16