【问题标题】:Allow user to choose the save file path for "print PDF"允许用户选择“打印 PDF”的保存文件路径
【发布时间】:2019-04-30 21:23:46
【问题描述】:

我在 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

【问题讨论】:

  • 我要将您的问题回滚到以前的状态,因为您的编辑是由于另一个答案,它在某种程度上使您接受的答案无效。只是为了让你知道我为什么这样做。
  • 理解并感谢

标签: excel vba pdf save-as


【解决方案1】:

您可以使用的另一种方法是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. 确保用户接受.Show = -1的保存位置

If .Show = -1 Then

最后,您将通过此行将文件路径返回到您正在使用的方法:

Filename:=.SelectedItems(1)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多