我在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
答案 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"
以下行有两个目的:
显示带有.Show
确保用户接受.Show = -1
If .Show = -1 Then
然后,最后,您将把文件路径返回到此行使用的方法:
Filename:=.SelectedItems(1)