【发布时间】:2021-05-06 22:54:47
【问题描述】:
我有一个主表单(我想我可以这样称呼它),它将 Excel 工作表导出为 PDF。我想要一个复选框,如果选中,则允许用户在运行后打开 PDF 文件。目前,当单击复选框时,它会尝试运行复选框宏,但如果未选中,则会返回错误。这是代码:
Sub CheckBox5_Click()
Dim ws As Worksheet
Dim chckBox As CheckBox
Set chckBox = Sheets("CompileSheet").CheckBoxes("CheckBox5")
Set ws = ThisWorkbook.Sheets("Sheet2")
If chckBox.Value = 1 Then
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
OpenAfterPublish:=True
Else
ws.ExportAsFixedFormat Type:=xlTypePDF, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
OpenAfterPublish:=False
End If
End Sub
不要犹豫,要求澄清。 谢谢。
【问题讨论】:
-
不要将此代码附加到复选框。而是让通常创建 PDF 的例程在运行时查看复选框。让复选框成为一个被动开关,由其他代码检查。
-
Set ws = ThisWorkBook.Sheets("Sheet2")在主宏生成之前没有 Sheet2。 -
我看看能不能搞定。谢谢@RbarryYoung
-
如何使复选框成为被动选项?我会使用
Application.Caller吗? -
@kaligirl "passive" 只是意味着它没有附加任何事件。当你点击它时什么都没有发生,它只是改变了它自己的状态,你的代码稍后会检查它。