【问题标题】:.printout command: why sending printing commands separately for each copy?.printout 命令:为什么要为每份单独发送打印命令?
【发布时间】:2019-06-25 08:59:16
【问题描述】:

当执行下面的代码时,Excel 会为每个副本向打印机发送单独的打印输出命令,而不是为所有副本仅发送一个命令。

这个问题大大减慢了打印过程。如何通过向打印机发送更少的命令而不是为每个副本发送单独的命令来加快速度?

Sub tryPrint()
Dim Barcode As Worksheet
Set Barcode = Sheets("ETIKET")

Application.PrintCommunication = False
With Barcode.PageSetup
   .FitToPagesTall = 1
   .FitToPagesWide = 1
End With
Application.PrintCommunication = True

Barcode.PrintOut , Preview:=False, Copies:=4, ActivePrinter:="\\MUHASEBE\Argox OS-214 plus series PPLA"

End Sub

例如:指定 4 个副本,代码向打印机发送 4 个不同的命令:

Barcode 1
Barcode 1
Barcode 1
Barcode 1

相反,我希望它以如下方式发送:

Barcode 4

这样,它可以将流程加快 100%。 感谢您的任何建议!

【问题讨论】:

  • 那么,lastrow 是什么,它从何而来? Barcode 是什么? etiket / ekleTable好像是listObjects、listColumns或者PivotTables,里面的数据怎么看?什么是科里? Barcode.PrintOut , Prev.... 表示您忽略了对Barrcode.Printout 的函数调用的第一个参数...。请试试这个:stackoverflow.com/help/minimal-reproducible-example 据我所知,错误发生在Barcode 内部,这可能是任何事情.
  • 你是对的。我在上面的帖子中尽可能多地指定了我的代码和我的问题。我希望,现在更清楚了。我猜这与电子表格中发生的事情无关。
  • 似乎是默认行为,这里有一个解决方法:ozgrid.com/forum/forum/help-forums/excel-general/… 我会看看我是否可以测试并写一个答案。
  • 环顾四周,可能需要注意的关键字是“Mopier”-模式。您是否确认您的复印机甚至可以接收打印多份的命令?

标签: excel vba printing


【解决方案1】:

我无法重现这一点,但该解决方案显然有效:

来源:www.papercut.com

在将参数传递给.Printout 时设置Collate:=False 应该可以解决问题。在此之后您必须手动对副本进行排序,但由于您打印的是相同的标签,所以没有区别。

文档可以在这里找到:Excel.Worksheet.PrintOut

【讨论】:

  • 这很完美。从没想过它会有所作为。谢谢!
猜你喜欢
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 2010-12-10
  • 2016-04-28
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
相关资源
最近更新 更多