在特定位置将Excel保存为PDF

时间:2016-03-18 14:34:37

标签: vba excel-vba excel

我有以下代码行,它应该采用excel电子表格,并将其另存为PDF文件。

它正常工作并将PDF文件保存在打开文件的同一目录中,但突然之间似乎没有将PDF文件保存在正确的位置。

有时会保存它,有时则不会。有没有办法可以更新我的代码以包含特定位置或文件打开的位置?

Sheets("Mortgage Charts").Activate
Range("L2").Select
With Sheets("Mortgage Charts")
    .ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:="Mortgage Scorecard " & Format(.Range("L2"), "mm-dd-yyyy"), _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
End With

2 个答案:

答案 0 :(得分:1)

我首先将OpenAfterPublish:=false更改为true。然后查看文档属性,打开它以找出它保存的位置。

我想如果没有错误,它会保存到一个未知文件夹。如果您发现该文件确实存在,我会将目录名添加到Filename:=参数中。您还可以使用

将文件路径设置为变量
x = Application.ActiveWorkbook.Path

它将以字符串形式返回工作簿的路径。

答案 1 :(得分:0)

使用John在您的代码中建议的内容。

Dim thisPath As String, docName As String

thisPath = Application.ActiveWorkbook.Path
docName = thisPath & "\Mortgage Scorecard " & Format(Range("L2"), "mm-dd-yyyy")

Sheets("Mortgage Charts").Activate
Range("L2").Select
With Sheets("Mortgage Charts")
    .ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=docName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
End With

修改

如果要在保存后打开PDF,请在End With

之后添加
openDoc = docName & ".pdf"
ActiveWorkbook.FollowHyperlink openDoc