2015-10-05 72 views
2

我想打印所有紙張到一個pdf文件。每張紙將在新頁面的開頭。選擇所有紙張並打印成一個pdf文件

我已經試過:

Private Sub CommandButton9_Click() 

ActiveWorkbook.Sheets.Select 
With Selection 
.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
"E:\tempo.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, OpenAfterPublish:=True 
End With 

End Sub 

我有一個消息:「對象的方法'選擇‘表’失敗了。」

謝謝!

+1

參見[只保存表格人口與填充細胞PDF](http://stackoverflow.com/questions/26234627/only-save-populated-spreadsheets- with-filled-in-cells-as-pdf/26235899#26235899)的幾種方法。 – Jeeped

+0

因此,在表格中循環顯示:對於此工作簿中的每個ws, – MacroMarc

+1

順便說一句,最有可能的是'select'失敗是因爲您有一些表被隱藏,因此無法選擇 – Raugmor

回答

1

,而不是activesheet.export... 使用activeworkbook.export... 每片將如何爲每個圖紙集打印設置顯示。

或者使用變量如:

Sub Button1_Click() 
    Dim wb As Workbook, Fnm As String 

    Set wb = ThisWorkbook 
    Fnm = "C:\Users\Dave\Downloads\TestMe.pdf" 

    wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fnm 

End Sub 
+0

它的工作!只是一個小問題 - 在PDF文件中,我在兩張紙之間有一個空白頁。你怎麼看,我需要設置打印區域,還是你有更好的主意?我想讓整個程序儘可能輕。謝謝! – Stefan0309

+1

我找到了答案'設置wbBook = ActiveWorkbook 對於每個wsSheet在wbBook.Worksheets wsSheet.Activate ActiveSheet.UsedRange 接下來wsSheet ' – Stefan0309