Excel VBA,分页工作表,分页保存为PDF,以及基于值的自动调用

我刚刚开始掌握一些基本的vba,并已经使用下面的代码将一个大的工作表分成单独的xls文件,在这里find了一个分页符(已经使用小计函数插入)。 此代码还根据单元格中的值命名每个文件。

Sub Sample() Dim rowCurrent As Long, rowPrevious As Long, i As Long Dim oWB As Workbook, newWbk As Workbook Dim oWS As Worksheet Set oWB = ActiveWorkbook Set oWS = oWB.Sheets("Specials") rowPrevious = oWS.UsedRange.Row + oWS.UsedRange.Rows.Count - 1 For i = oWS.HPageBreaks.Count To 0 Step -1 If i = 0 Then oWS.Rows("1:" & rowPrevious).Copy Else rowCurrent = oWS.HPageBreaks(i).Location.Row oWS.Rows(rowCurrent & ":" & rowPrevious).Copy End If Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs "c:\folder1\folder2" & ActiveSheet.Range("A2").Value & -i ActiveWorkbook.Close rowPrevious = rowCurrent - 1 Next End Sub 

我想要执行与上面相同的操作,但在最后输出pdf而不是xlsx文件。

我已经尝试在ActiveWorkbook.SaveAs行中添加“.pdf”,但没有运气。

将不胜感激任何build议,肯定我错过了一些明显的东西。

非常感谢

录制一个macros并按下F12(另存为)并保存为PDF格式将生成以下代码:

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "{path}\Book1.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False 

不要使用SaveAs方法,使用ExportAsFixedFormat保存为PDF。