【问题标题】:Save excel as PDF in specific location将excel另存为PDF在特定位置
【发布时间】:2016-03-18 14:34:37
【问题描述】:

我有以下代码行,它应该采用 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

【问题讨论】:

  • 我还建议尽可能避免使用ActivateSelect(只是为了养成良好的编码习惯)。我一直在寻找this post useful 在不同情况下如何明确表达。

标签: vba excel


【解决方案1】:

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

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

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

它会将工作簿的路径作为字符串返回。

【讨论】:

  • 我可以建议编辑Applicaiton.Activeworkbook.Path,以防有人决定复制和粘贴;)
【解决方案2】:

使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 2011-04-22
    • 2012-10-15
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    相关资源
    最近更新 更多