使用文件名和特定文件路径将文件另存为PDF

时间:2016-03-22 19:06:58

标签: excel vba excel-vba pdf

我是VBA的新手并尝试创建一个宏,该宏将使用文件的基本名称自动将我的文件保存为PDF文件。这个主题已在各个站点中得到了很多介绍,因此我能够获得我需要的大部分代码但由于某种原因我在最后一个语句中被绊倒了。以下是我到目前为止的情况:

Sub SaveAsPDF()

Dim SaveDirectory As String
Dim SaveFileName As String
Dim BaseName As String
Dim fso

SaveDirectory = Environ("Userprofile") & "\Dropbox\Operations\VBA Projects\"

Set fso = CreateObject("Scripting.FileSystemObject")

BaseName = fso.GetBaseName(ActiveWorkbook.Name)

SaveFileName = SaveDirectory & BaseName & ".pdf"

Sheets(Array("Page1", "Page2")).ExportAsFixedFormat Type:=xlTypePDF, _
                                              FileName:=SaveFileName, _
                                              Quality:=xlQualityStandard, _
                                              IncludeDocProperties:=True, _
                                              IgnorePrintAreas:=False, _
                                              OpenAfterPublish:=False

End Sub

当我调试整个代码时,最后一个语句会突出显示。不知道我做错了什么。

1 个答案:

答案 0 :(得分:1)

出于某种原因,ExportAsFixedFormat方法不能直接使用工作表数组。

以下内容将起作用(这是在Excel VBA中需要SelectActivate的极少数情况之一)

Sheets(Array("Page1", "Page2")).Select
Sheets("Page1").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                              FileName:=SaveFileName, _
                                              Quality:=xlQualityStandard, _
                                              IncludeDocProperties:=True, _
                                              IgnorePrintAreas:=False, _
                                              OpenAfterPublish:=False