2016-12-14 71 views
0

我是VBA的新手,不知道如何實現我想要的功能。更改現有的宏以打印爲PDF而不是

有人能告訴我如何使下面的宏打印到PDF而不是默認的打印機?

Sub PRINTMULTIPACKS() 
' 
' PRINTMULTIPACKS Macro 
' 

' 
ActiveSheet.Unprotect 
ActiveSheet.Range("$C$13:$D$22").AutoFilter Field:=1, Criteria1:="<>" 
Sheets("EXPORT TO VENDOR MULTIPLE AREAS").Select 
ActiveSheet.Unprotect 
ActiveSheet.Range("$A$11:$AD$261").AutoFilter Field:=3, Criteria1:="<>" 
Sheets("FIXTURE SCHEDULE").Select 
ActiveSheet.Unprotect 
ActiveSheet.Range("$A$4:$S$874").AutoFilter Field:=17, Criteria1:="<>" 

Sheets("COVER MULTIPLE AREAS").Select 
Range("D10").Select 
Sheets(Array("COVER MULTIPLE AREAS", "EXPORT TO VENDOR MULTIPLE AREAS")).Select 
Sheets("COVER MULTIPLE AREAS").Activate 
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" 
Sheets("FIXTURE SCHEDULE").Select 
ActiveSheet.Range("$A$4:$S$874").AutoFilter Field:=17 
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ 
    , AllowFiltering:=True 

Sheets("EXPORT TO VENDOR MULTIPLE AREAS").Select 
ActiveSheet.Range("$A$11:$AD$261").AutoFilter Field:=3 
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ 
    , AllowFiltering:=True 
Sheets("COVER MULTIPLE AREAS").Select 
ActiveSheet.Range("$C$13:$D$22").AutoFilter Field:=1 
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ 
    , AllowFiltering:=True 
Range("C10").Select 

末次

回答

0

您可以直接保存爲PDF格式取決於Excel版本所使用。

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\Users\sample\Documents\mySheet.pdf", Quality:= _ 
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=False 

其中,C:\Users..是您希望保存的路徑和文件名。