【问题标题】:Printing Quadruplicate copies by VBA code to a single PDF file通过 VBA 代码将四份副本打印到单个 PDF 文件
【发布时间】:2018-02-24 10:53:04
【问题描述】:

我有一个VBA Excel 代码,可以在默认打印机上打印一式四份。

我想要的是将此四份保存为单个 PDF 文件,即将所有四张纸保存在一个连续的 4 页 PDF 文件中。

代码如下。

Sub PrintInvoiceQuadtriplicate()
    Dim i As Integer
    Dim VList As Variant

    VList = Array("ORIGINAL  FOR  RECIPIENT", "DUPLICATE  FOR  TRANSPORTER", "TRIPLICATE  FOR  SELLER", "EXTRA  COPY")
    For i = LBound(VList) To UBound(VList)
        Range("L1") = VList(i)
        ActiveSheet.PrintOut
    Next
End Sub 

请告诉我如何修改此代码以获取单个 PDF 文件而不是单独的页面。

【问题讨论】:

标签: excel vba printing


【解决方案1】:

正如 Zac 所说,可能与已回答的this post 重复。

在导出为 PDF 之前,您似乎必须选择工作表。

ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\tempo.pdf", Quality:= xlQualityStandard, IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, OpenAfterPublish:=True

感谢@Tim Williams 的回答。

【讨论】:

  • 此解决方案不起作用,因为在此解决方案中,工作表已定义并存在于工作簿中,而在我的情况下,工作表是由宏一张一张生成的,然后一张张发送到打印机.
  • @SYED 有什么问题?只需使用每张工作表的名称而不是 activesheet
  • 如果我使用工作表名称代替活动工作表,那么它也会以 pdf 格式保存为单张工作表,我需要的是我希望将所有这些工作表放在一张连续的 pdf 工作表中,有 4 页。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 2019-09-02
  • 2020-02-22
  • 2014-07-22
相关资源
最近更新 更多