从excel中的多行生成多页文档

时间:2013-02-01 12:37:20

标签: excel vba excel-vba

在我的excel中,我有这样的多行:

Name  Age Tel 
John  5    12345677
Peter 10   4547567
Mary  6     46u7687867

我想知道如何生成从excel到多个发票的多个文档,如下所示:

1页:

Certification of XXXXX

John      Age 5

第2页:

Certification of XXXXX

Peter     Age 10

第3页:

Certification of XXXXX

Mary      Age 6

谢谢!

2 个答案:

答案 0 :(得分:2)

假设上述输入&评论,以下代码将完成这项工作:

Sub ListPrinting()

Dim i As Long

i = 1

For i = 2 To ThisWorkbook.Sheets(1).Range("A1").CurrentRegion.Rows.Count

    ThisWorkbook.Sheets("Invoice").Range("F40").Formula = ThisWorkbook.Sheets(1).Cells(i, 1).Formula
    ThisWorkbook.Sheets("Invoice").Range("I38").Formula = ThisWorkbook.Sheets(1).Cells(i, 2).Formula
    ThisWorkbook.Sheets("Invoice").Range("I9").Formula = ThisWorkbook.Sheets(1).Cells(i, 3).Formula
    ThisWorkbook.Sheets("Invoice").PrintOut Copies:=1, ActivePrinter:="pdfFactory Pro on FPP4:" 'Specify your printer

Next i

MsgBox i - 2 & " invoice(s) printed."

End Sub

请注意:

  1. 您应指定所需打印机的名称 - 使用宏录制器,然后在“打印”对话框的可用打印机列表中选择它。
  2. 列表中的记录数量实际上是无限的......好吧,纸张和墨水/碳粉不是)))所有这些记录将从第2行打印到最后一个非空字符串{{{ 1}}表。
  3. 在1-2项上测试代码以避免纸张丢失)
  4. 示例文件已共享(代码也经过测试):https://www.dropbox.com/s/296e200496gd7gb/ListPrinting.xlsm

    P.S。也许您应该根据需要重新格式化日期字段 - 它使用区域设置,因此将以不同的方式显示给您。

答案 1 :(得分:-1)

为了从excel中的多行生成多页文档行,您应该流动 一些步骤,并知道您可以访问http://fetchflow.com/support/question/How-do-I-create-a-new-purchase-order.html