我正在使用包含动态行的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:我没有找到任何方法来创建pdf文件的分页符。但是,我仍然解决了我的问题。我只是找到一个vba模块来运行外部进程并等待它们。它是ShellAndWait
我将pdf文件的每一页保存为临时文档,并将其路径/名称发送到我已创建的C#控制台应用程序。我使用库PDFsharp来处理pdf文档,然后将它们合并到1个文件中。
希望它可以帮助别人。
答案 0 :(得分:3)
您可以像这样设置分页符:
(defun quick (list)
(when (< = (length list) 1) (return-from quick list))
(let ((pivot (car list)) (rest (cdr list)) (less nil) (greater nil))
(loop for i in rest do
(if (< i pivot) (push i less) (push i greater)))
(append (quick less) (list pivot) (quick greater))))
仅供参考,我没有设法让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