如何使用CopyFile方法更正错误“找不到路径/文件”

时间:2019-01-23 12:09:56

标签: excel vba excel-2007

我试图将工作表另存为PDF文件到桌面,然后使用FileCopy方法将文件复制到另一个位置。我不断收到“找不到文件”或“找不到路径”错误。

使用FileCopy方法时,它将在桌面上创建一个文件,然后抛出复制文件的错误。在此之前,我尝试过两次创建pdf,一次又一次,然后在桌面上创建,然后在相关的每月文件夹中创建另一个。尝试了关于我正在使用的2个变量的不同语法。似乎无法得到正确的任何东西。试图使代码更高效

Sub Save_Invoice_To_PDF()

Dim Fso As Scripting.FileSystemObject
Dim Invoice As Worksheet
Dim Fname As String
Dim Path1 As String
Dim Path2 As String
Dim PndSign As String
Dim Mth As String
Dim Mth1 As String

Set Invoice = Sheet1

PndSign = Chr(163)

Mth = Invoice.Range("A16").Value
Mth1 = MonthName(Month(Mth))

Path1 = "C:\Users\Peter\Desktop\"
Path2 = "C:\Users\Peter\Documents\Business\Sent Invoices\" & Mth1 & "\"
Fname = Range("C16").Value & " " & Range("A8").Value & " " & _
    PndSign & "" & Range("E46").Value _
    & " " & Format(Range("A16"), "dd-mm-yyyy") & ".pdf"

Application.ScreenUpdating = False


    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Path1 & " " & Fname, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False


  Set Fso = New FileSystemObject

    Fso.CopyFile Source:="C:\Users\Peter\Desktop\" & Fname, _
Destination:="C:\Users\Peter\Business\Invoices\Sent Invoices\ _
" & Mth1 & "\"

Set Fso = Nothing

Application.ScreenUpdating = True

End Sub

只想将一个pdf文件保存到桌面并将该pdf文件复制到Mth1变量中指定的每月文件夹中,该文件夹是从文件Fname变量(即Format(Range(“ A16”),“ dd-mm-yyyy”)。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,据我所见,很多人都问过这个问题。我认为在 FileCopy 命令之前有一个命令来创建将复制文件的文件夹时,您会产生问题。因此,比硬盘驱动器更快的编译器无法找到该文件夹​​,因为这就是您现在正在创建的内容。 如果您在命令 FileCopy 之前延迟 1 秒, 像这样..

Application.Wait (Now + TimeValue("0:00:01"))

问题会解决