我有一个执行并创建PDF文件的宏。每次运行宏时,都会生成一个PDF。我想将报告的最后一个版本(每天运行三次)移动到文件夹标题“过去的报告”。我一直在玩下面的脚本,但它对我不起作用。 Active Report文件夹仅包含最新创建的PDF文件。
有人可以提供帮助吗?很高兴在需要时添加更多信息。
Public Sub transferFile()
On Error GoTo nextIt
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
PDFPath = "D:\####\Pinging Program\Active Report\"
pastPDFPath = "D:\####\Pinging Program\Past Reports"
sSourceFile = PDFPath & Dir(PDFPath & "*.pdf")
sDestinationFile = "D:\####\Pinging Program\Past Reports"
'move file
If Dir(sSourceFile) <> "" Then
fileSystemObject.moveFile sSourceFile, sDestinationFile
End If
nextIt:
End Sub
答案 0 :(得分:2)
您的目标文件夹缺少最终斜杠。此外,作为对未来的建议,如果您没有像Victor建议的那样绕过错误处理,那么错误会更容易理解。您的代码如下:
Public Sub transferFile()
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")
PDFPath = "C:\test\Active Report\"
pastPDFPath = "C:\test\Past Reports"
sSourceFile = PDFPath & Dir(PDFPath & "*.pdf")
sDestinationFile = "C:\test\Past Reports\"
'move file
If Dir(sSourceFile) <> "" Then
fileSystemObject.moveFile sSourceFile, sDestinationFile
End If
End Sub
我测试了它,它按预期工作。的问候,