2016-07-21 40 views
0

我正在寫一個宏,可以自動執行每天發送的每日報告。我最後的一個項目是編寫一個腳本,將格式化的Excel表格保存爲PDF(通過打印到PDF選項),並將其保存在特定的文件夾中。我有以下書面,但是,它仍然提示用戶在哪裏保存它。將PDF自動保存到預定文件夾

什麼是更好的方式或通常的方式,讓它自動保存到我的桌面上的某個文件夾?

Sub printToPDF() 
    Worksheets("general_report").PageSetup.CenterVertically = False 
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Foxit Reader PDF Printer" 
End Sub 
+0

你有沒有看着[Workbook.ExportAsFixedFormat()](https://msdn.microsoft.com/en-us/library/office/ff198122的.aspx)? – Mikegrann

+0

我正在教我自己。我試圖使用該頁面的一些工作,但是當我嘗試給它一個文件名時會引發錯誤。我想知道是不是因爲我用錯誤的對象來使用錯誤的參數。 – Rivers31334

+0

如果您發佈錯誤代碼,我可以查看它是否存在潛在的錯誤。只需編輯您的帖子,我們就會從那裏開始。 – Mikegrann

回答

1

這應該做的工作,

Sub printToPDF() 

    Dim FilePath As String 
    Dim FileName As String 

    FilePath = "C:\Users\userName\Desktop\" 'Change as per your username 

    ActiveSheet.Copy 'Copy a worksheet to a new workbook 

    'It saves .PDF file at your Descrop with the name of the worksheet 
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FilePath & ActiveSheet.Name, _ 
     Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
     OpenAfterPublish:=False 

    'Closing a newly created workbook without saving it 
    Application.DisplayAlerts = False 
    ActiveWorkbook.Close 

End Sub