PrintLoop大量打印文件中的所有数据行

时间:2015-12-13 23:11:57

标签: excel excel-vba vba

如何将所有行(页面)打印并保存到单个文件中,而不必将每行保存为单独的PDF文件。目前,下面的代码将每行数据打印成单独的PDF文件。

Sub PrintLoop()
  Dim LR As Long, i As Long
  Application.ScreenUpdating = False

  With Sheets("Labels Data File")
    LR = .Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To LR
      Sheets("Print Labels").Range("A1").Value = .Range("A" & i).Value
      Sheets("Print Labels").PrintOut
    Next i
  End With
  Application.ScreenUpdating = True
End Sub:

enter image description here

[![在此处输入图像说明] [2]] [2]

我目前正在尝试打印第二个屏幕截图,而无需手动更改圈出红色的数字并打印单个页面。我只需点击一下即可尝试打印整个文件。

1 个答案:

答案 0 :(得分:0)

修改

我现在更了解你的问题并改变了我的答案。我的下面的方法有点像黑客,可能会大大简化,但如果你不介意一些额外的步骤,那就有用。

  1. 运行宏 - (此打印到文件,默认为您的文档文件夹)

    Sub PrintLoop()
      Dim LR As Long, i As Long
      Application.ScreenUpdating = False
    
      With Sheets("Labels Data File")
        LR = .Range("A" & Rows.Count).End(xlUp).Row
        For i = 2 To LR
          Sheets("Print Labels").Range("A1").Value = .Range("A" & i).Value
          Sheets("Print Labels").PrintOut Preview:=False, PrintToFile:=True, PrToFileName:="Lable_" & i
        Next i
      End With
      Application.ScreenUpdating = True
    End Sub
    
  2. .prn个文件合并到一个打印文件

    • 打开命令提示符
    • 导航到包含.prn个文件
    • 的文件夹
    • 输入:copy *.prn combinedfile.prn
  3. 删除除combinedfile.prn

    以外的所有.prn个文件
    • 打开命令提示符
    • 导航到包含.prn个文件
    • 的文件夹
    • 输入:for %i in (*.prn) do if not %i == combinedfile.prn del %i
  4. .prn文件转换为.pdf    尝试使用Ghost脚本see this post

  5. 步骤2,3和&一旦完成所有工作,就可以在批处理脚本中设置4。