【发布时间】:2021-03-02 21:05:06
【问题描述】:
我正在尝试根据该工作表在 A1 中是否为 1,从单个工作表(在一个工作簿中)生成单个 PDF。根据前页(“计算器”/“Sheet1”)上填写的内容,10 个隐藏工作表中只有一个会在 A1 中显示 1。
我的代码确实会生成 PDF,但不会更改活动工作表,因此不是跳转到 A1 中的 1 的工作表实例,而是打印我上次使用的工作表。
Sub GenPDF_OTJ()
Dim saveInFolder As String
Dim replaceSelected As Boolean
Dim wsName As Variant
Dim iVis As XlSheetVisibility
saveInFolder = "C:\Downloads\pdf\"
If Right(saveInFolder, 1) <> "\" Then saveInFolder = saveInFolder & "\"
With ThisWorkbook
replaceSelected = True
For Each wsName In Array("OTJ Bus Admin", "OTJ SFSCA", "OTJ Sales L4") 'additional sheets to be added in once working
If .Worksheets(wsName).Range("A1").Value > 0 Then 'A1 will only be 1 or 0
.Worksheets(wsName).Select replaceSelected
replaceSelected = False
End If
Next
.ActiveSheet.Select
With .ActiveSheet
iVis = .Visible
.Visible = xlSheetVisible
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=PdfFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
.Visible = iVis
.Visible = xlSheetHidden
End With
End With
End Sub
【问题讨论】:
标签: excel vba pdf-generation