Excel vba,在分页符处拆分工作表,另存为pdf,并根据值自动命名



我刚刚开始掌握一些基本的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。

最新更新