我使用下面的基本代码将文件从一个位置复制到另一个位置。
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
答案 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