我是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
当我调试整个代码时,最后一个语句会突出显示。不知道我做错了什么。
答案 0 :(得分:1)
出于某种原因,ExportAsFixedFormat
方法不能直接使用工作表数组。
以下内容将起作用(这是在Excel VBA中需要Select
和Activate
的极少数情况之一)。
Sheets(Array("Page1", "Page2")).Select
Sheets("Page1").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=SaveFileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False