允许用户选择“打印PDF”的保存文件路径

时间:2018-11-28 21:31:52

标签: excel vba excel-vba pdf save-as

我在Excel文件上有一个命令按钮,允许用户单击以自动执行“打印PDF”功能。问题是,目前我只能将文件保存到代码中的指定位置。我想让用户选择类似于实际保存功能的保存目录。

这是我到目前为止的代码:

Private Sub PrintPDF_Button_Click()

    Dim mySheets As Variant, sh

    mySheets = Array("COVER", "SCOPE", "SUMMARY", "Updated Hours EST", "RATES")

    Sheets(mySheets).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\sravi\test" & _
        ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, openafterpublish:=True

End Sub

2 个答案:

答案 0 :(得分:2)

使用Application.GetSaveAsFilename方法。将返回值用作Filename属性,但是在保存之前检查以确保它不是False

答案 1 :(得分:2)

您可以使用的另一种方法是Application.FileDialog()方法。如果需要,您将能够设置默认的保存位置,甚至是默认的文件名。

Dim fileSave As FileDialog
Set fileSave = Application.FileDialog(msoFileDialogSaveAs)

With fileSave
    ' Your default save location here
    .InitialFileName = "C:\Users\sravi\*.pdf"

    If .Show = -1 Then

        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=.SelectedItems(1), _
                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, openafterpublish:=True

    End If
End With

打破现状

您可以使用.InitialFileName属性设置默认的保存路径。如果您具有默认文件名,则可以使用它。否则,使用*.pdf

设置默认文件类型。
.InitialFileName = "C:\Users\sravi\*.pdf"

以下行有两个目的:

  1. 显示带有.Show

  2. 的对话框
  3. 确保用户接受.Show = -1

  4. 的保存位置

If .Show = -1 Then

然后,最后,您将把文件路径返回到此行使用的方法:

Filename:=.SelectedItems(1)