我刚刚开始掌握一些基本的vba,并一直在使用下面的代码将一张大图纸拆分为单独的xls文件,在那里它可以找到一个分页符(使用小计函数插入)。此代码还根据单元格中的值为每个文件命名。
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:folder1folder2" & ActiveSheet.Range("A2").Value & -i
ActiveWorkbook.Close
rowPrevious = rowCurrent - 1
Next
End Sub
我想执行与上面相同的操作,但在最后输出一个pdf文件,而不是xlsx文件。
我试着在ActiveWorkbook.SaveAs行中添加了一个".pdf",但没有成功。
如果有任何建议,我将不胜感激,当然我遗漏了一些显而易见的东西。
非常感谢
录制宏并点击F12(SaveAs)并保存为PDF会生成以下代码:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"{path}Book1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
不要使用SaveAs
方法,使用ExportAsFixedFormat
保存为PDF。