在Excel中插入分页符以分割数据以便打印.pdf

我正在处理一个可以包含dynamic行的Excel文件。 我出口到.pdf,它运作良好。 问题是,所有的内容都在.pdf文件的单个页面上。

有没有办法在我的VBA中为我的.pdf文件插入分页符?

编辑:这是我的分页符的代码。 似乎不会工作

If count > 30 Then ' count is the number of row. Break at every 15 rows Set ws = Range("A1", "K" & count) 'The range of the document Dim ii As Integer ii = 21 ' first page break While count > 0 If count > 15 Then ' no page break if there is less than 15 rows ws.Rows(ii).EntireRow.PageBreak = xlPageBreakManual End If ii = ii + 15 count = count - 15 Wend End If 

编辑2:我没有find任何方式来创build分页到PDF文件。 但是,我仍然解决我的问题。 我只find一个vba模块来运行外部进程并等待它们。 这是ShellAndWait

我将我的pdf文件的每一页保存为一个临时文档,并将其path/名称发送到我创build的C#控制台应用程序。 我正在使用库PDFsharp来处理PDF文档,然后将它们合并到1个文件。

希望它可以帮助某人。

你可以像这样设置分页符:

 Worksheets("Sheet1").HPageBreaks.Add Before:=Worksheets("Sheet1").Rows(25) Worksheets("Sheet1").VPageBreaks.Add Before:=Worksheets("Sheet1").Columns("J") Worksheets("Sheet1").Rows(25).PageBreak = xlPageBreakManual Worksheets("Sheet1").Columns("J").PageBreak = xlPageBreakManual 

仅供参考,我没有设法使Range.PageBreak工作

或者对于一个范围,这样的事情:

 With Range(blabla) .Rows(.Rows.Count).EntireRow.PageBreak = xlPageBreakManual '.Rows(Int(.Rows.Count/2)).EntireRow.PageBreak = xlPageBreakManual .Columns(.Columns.Count).EntireColumn.PageBreak = xlPageBreakManual End With 

这里是你更正的代码:

 Sub test_Wanceslas() Dim Ws As Worksheet, _ Rg As Range, _ LastRow As Long, _ Count As Long, _ ii As Long ii = 21 ' first page break Set Ws = ActiveSheet With Ws LastRow = .Range("A" & .Rows.Count).End(xlUp).Row Count = LastRow Set Rg = .Range("A1", "K" & Count) 'The range of the document If LastRow > 30 Then ' count is the number of row. Break at every 15 rows .ResetAllPageBreaks .PageSetup.PrintArea = Rg.Address While Count > 0 And ii < LastRow If Count > 15 Then ' no page break if there is less than 15 rows left '.Rows(ii).PageBreak = xlPageBreakManual .HPageBreaks.Add Before:=.Rows(ii) End If ii = ii + 15 Count = Count - 15 Wend End If End With End Sub