突然,pdf导出代码不再起作用。我的代码有问题吗?

时间:2019-05-07 15:23:38

标签: excel vba

我有一个用于将pdf导出到Sharepoint上特定文件夹的代码。该代码始终运行良好,直到引起愤慨。我不知道为什么。在代码中,我结合了2个用于路径的字符串。如果我切除了部分路径,则可以使用。

因此,我认为路径存在问题。我多次检查该路径是否正确,无法看到它已更改。 我得到

  

运行时错误1004:应用程序定义的对象定义的错误

如果我更改Filename:=newpath3Filename:=newpath1 导出pdf。那么newpath2有什么问题吗?我检查了msgbox,找不到总路径有任何错误。

Private Sub CommandButton1_Click() 
    Dim newpath1 As String
    Dim newpath2 As String
    Dim newpath3 As String

    newpath1 = Left(ActiveWorkbook.Path, 66)
    newpath2 = "99%20Vedlegg%20til%20faktura"
    newpath3 = newpath1 & newpath2

    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=newpath3 & "/" & "test", _
        Quality:=xlQualityStandard, _
        OpenAfterPublish:=True
End Sub

1 个答案:

答案 0 :(得分:0)

文件名的各个部分(即路径中的每个子目录以及最终文件名)限制为255个字符,总路径长度限制为大约32,000个字符。

但是,在Windows上,您不能超过MAX_PATH值(文件为259个字符,文件夹为248个字符)。有关详细信息,请参见http://msdn.microsoft.com/en-us/library/aa365247.aspx

我的猜测是您最近将文件移到了新的子文件夹中。它也可能是无效的文件名。不知道您的ActiveWorkbook.Path是很难说的。

这是我的PDF导出功能:

Dim v As Variant
Dim Fname As String
Dim PdfFile As String

'Remove invalid characters from filenames
Fname = "test" 'Build your filename here
For Each v In Array("/", "\", "|", ":", "*", "?", "<", ">", """")
    Fname = Replace(Fname, v, "_")
Next

'Export activesheet as PDF
    PdfFile = ActiveWorkbook.Path & "\" & Fname & ".pdf"
    With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With

这会将PDF输出到与excel文件相同的位置。