今天我的工作簿发现了一个问题。我有一个基本的Workbook_BeforeClose子保存在ThisWorkbook中,用于重置工作簿外观,确保工作簿被隐藏并使其清理,以便下次用户与工作表交互。我不认为代码是相关的,但无论如何都包括在内以防万一。
我的问题是当我关闭打印预览时,会触发此代码(我用断点确认)并且它询问我是否要保存我的项目之前它关闭它。当然,我可以点击取消并阻止文件关闭,但它仍然运行脚本的其余部分。这种行为似乎不对,我不希望用户对此感到困惑。有没有人见过这个,或者知道一个潜在的解决方案?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wshide As Worksheet
Dim wsa As Worksheet
Dim CurrWs As Worksheet
Set CurrWs = Sheets(ActiveSheet.Name)
For Each wsa In Worksheets
wsa.Activate
ActiveWindow.View = xlNormalView
wsa.Range("A1").Select
Next
For Each wshide In Sheets(Array("Data", "Tables", "Map"))
wshide.Visible = xlSheetHidden
Next
CurrWs.Activate
End Sub
由于
答案 0 :(得分:1)
当关闭“打印预览”时,不应该调用Workbook_BeforeClose,只有在关闭整个工作簿的情况下关闭“打印预览”时才会调用它。
您无法从另一个宏调用Workbook_BeforeClose,因此也不会触发它。
可以触发Workbook_BeforeClose的唯一方法是关闭工作簿。