运行时错误76:找不到路径

时间:2017-07-27 12:05:28

标签: excel vba excel-vba

我使用下面的基本代码将文件从一个位置复制到另一个位置。

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

Cell(i,19)包含指向pdf文件的超链接。我有大约5000个文件。使用On Error Resume Next帮助我传递了运行时错误并提取了大约4400个文件。剩下的600都将在没有On Error Resume Next的情况下给出运行时错误。 600个文件具有有效链接,单击时,pdf将打开。知道为什么我会收到错误吗?

编辑:所有文件都在网络驱动器上。路径示例: \\19549dabjnb0002\images\2017.07\11\A217081\20170711095405.pdf

1 个答案:

答案 0 :(得分:1)

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