【发布时间】:2016-02-28 03:15:32
【问题描述】:
我有代码可以选择要打印到 pdf 文档的工作表数组,但是我正在尝试使用与特定工作表相对应的一系列复选框来实现用户表单。
以下代码选择预先确定的工作表数组并将它们打印为 pdf
Sub PDFAllSheets_Click()
Dim ws As Worksheet
Dim strPath As String
Dim myfile As Variant
Dim strFile As String
Dim sheetstoprint As String
On Error GoTo errHandler
Set ws = ActiveSheet
strFile = "E_CALC_" & Worksheets("Contents").Range("H7").Text & ".pdf"
strFile = ThisWorkbook.Path & "\" & strFile
myfile = Application.GetSaveAsFilename _
(InitialFileName:=strFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
title:="Select Folder and FileName to save")
If myfile <> "False" Then
ThisWorkbook.Sheets(Array("Engine", "CHP Layout", "Ventilation", "Exhaust", "Gas", "Hazardous Zoning", "Gas Ramp up", "Steam Boilers", _
"JW PU", "AC PU", "Combustion", "BREEAM NOx", "Pump P1", "Pump P2", "Pump P3", "Pump P4", "Pump P5")).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=myfile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
MsgBox "PDF file has been created."
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file", vbRetryCancel, "Oops!"
Resume exitHandler
End Sub
我需要以下用户窗体的复选框来定义要包含在数组中的工作表。
【问题讨论】:
-
它必须是复选框还是所有工作表的列表框,用户可以在其中选择多个工作表,也可以工作?
-
我对ListBox功能不熟悉,但如果它能够完成任务,我一定会试一试。
-
我正在使用 ListBoxes 显示我的所有工作表,然后用户可以选择他们想要导出为 PDF 的工作表,可以是合并的 PDF 文件,也可以是单独文件中的所有工作表。跨度>
-
马上来
-
当我在 ListBox 设置中将 MultiSelect 设置为 1 - fmMultiSelectMulti 时,我已设法将单个工作表从我的 ListBox 导出为 pdf,但它似乎不起作用。我应该在上面的代码中使用 Worksheets(Array(ListBox1.Value)).Select 吗?
标签: vba excel checkbox pdf-generation userform