【问题标题】:Excel macro to select certain worksheets and print to one pdfExcel 宏选择某些工作表并打印到一个 pdf
【发布时间】:2015-04-18 07:08:55
【问题描述】:

我在 excel 2007 中有一个 excel 工作簿,其中包含大约 110 个单独的工作表。

我想要一个菜单​​页面,用户可以在其中对他们想要的工作表的标题说是或否,然后按一个按钮运行一个宏,然后选择用户说 Y 的工作表,然后打印将它们作为单个 PDF 转换为 PDF,而不是加载单个 PDF。

我目前有以下代码来选择工作表并打印它们。目前,虽然当我选择一台 PDF 打印机时,它只打印多个 PDF 而不是一个 PDF。

Sub Printselection()
Dim rng As Range
Dim wks As Worksheet
For Each rng In Sheets("RA Database").Range("Q6:Q119")
    If Trim(rng.Value) <> "" Then
        On Error Resume Next
        Set wks = Nothing
        Set wks = Sheets(rng.Value)
        On Error GoTo 0
        If wks Is Nothing Then
            MsgBox "Sheet " & rng.Value & " does not exist"
        Else
             Application.Dialogs(xlDialogPrinterSetup).Show
             wks.PrintOut
        End If
    End If
Next rng
End Sub

我很高兴它可以这样工作,但我们需要整理 PDF 副本。

我是 VB 新手,所以任何帮助都将不胜感激!

【问题讨论】:

  • 我确实看到了那个原始帖子,但是它选择了所有工作表,因为这个工作表引用了一列,然后只打印那些与列表中的条目匹配的工作表

标签: vba excel pdf


【解决方案1】:

为了将所有工作表打印到 PDF 文件中,您需要将要打印的所有工作表名称存储到一个数组中,然后使用以下命令。

Worksheets(printSheets).PrintOut Preview:=False, ActivePrinter:="Adobe PDF", PrintToFile:=True, PrToFileName:=PSFileName

printSheets 是包含您要打印的工作表名称的数组

编辑:

这对你有用

Sub Printselection()
    Dim rng As Range
    Dim wks As Worksheet
    Dim arr() As String
    Dim i As Long: i = 0
    For Each rng In Sheets("RA Database").Range("Q6:Q119")
        If Trim(rng.Value) <> "" Then
            On Error Resume Next
            Set wks = Nothing
            Set wks = Sheets(rng.Value)
            On Error GoTo 0
            If wks Is Nothing Then
                MsgBox "Sheet " & rng.Value & " does not exist"
            Else
                ReDim Preserve arr(i)
                arr(i) = wks.Name
                i = i + 1
            End If
        End If
    Next rng
    Dim printSheets As Variant
    printSheets = arr
    Worksheets(printSheets).PrintOut Preview:=False, ActivePrinter:="Adobe PDF", PrintToFile:=True, PrToFileName:=PSFileName
End Sub

【讨论】:

  • 那会只整理我最初发布的代码整理过的工作表吗?对于我的绿色眼睛来说,它会打印,但每个都是单独的 pdf,而不是作为一个 PDF,所有工作表都在其中编译。如果我很好并且完全错了,请纠正我,我可能是大声笑
  • 抱歉回来晚了!!珍诺你绝对是明星!!完美运行。太感谢了!! :D
猜你喜欢
  • 2022-12-21
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
相关资源
最近更新 更多