Vba 在特定位置将excel另存为PDF

Vba 在特定位置将excel另存为PDF,vba,excel,Vba,Excel,我有下面一行代码,它应该是一个excel电子表格,并保存为PDF文件 它工作正常,并将PDF文件保存在打开文件所在的同一目录中,但突然之间,它似乎没有将PDF文件保存在正确的位置 有时它保存它,有时它不保存它。是否有一种方法可以更新代码以包含特定位置或打开文件的位置 Sheets("Mortgage Charts").Activate Range("L2").Select With Sheets("Mortgage Charts") .ExportAsFixedFormat _

我有下面一行代码,它应该是一个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

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

我可以想象,如果没有错误,它会保存到一个未知的文件夹中。如果您发现文件确实正在保存,我会将目录名添加到
Filename:=
参数中。您还可以使用以下命令将文件路径设置为变量:

x = Application.ActiveWorkbook.Path

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

使用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,请在
结束时添加以下内容:

openDoc = docName & ".pdf"
ActiveWorkbook.FollowHyperlink openDoc

如果有人决定复制和粘贴,我可以建议编辑
applicationon.Activeworkbook.Path
)我还建议尽可能避免
激活
选择
(只是为了养成良好的编码习惯)。我总是发现在不同的情况下如何表达自己。