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

时间:2015-11-12 14:33:46

标签: excel vba excel-vba pdf printing

我正在使用包含动态行的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个文件中。

希望它可以帮助别人。

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