Excelclosures打印预览触发器Workbook_BeforeClose

我今天在工作簿上发现了一个问题。 我有一个基本的Workbook_BeforeClose子文件保存在ThisWorkbook中,用于重置工作簿外观,确保工作表隐藏,并使其在下次与工作表的用户界面清理。 我不认为这个代码是相关的,但为了以防万一,也包括在内。

我的问题是,当我closures打印预览这个代码被触发(我确认了一个断点),它问我是否要保存我的项目,然后closures它。 当然,我可以取消并阻止文件closures,但它仍然运行脚本的其余部分。 这种行为似乎不正确,我不希望用户感到困惑。 有没有人见过这个,或知道一个潜在的修复?

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 

谢谢

当closures打印预览时,不应该调用Workbook_BeforeClose,只有closures打印预览时才会调用Workbook_BeforeClose,同时closures整个工作簿。

您不能从另一个macros调用Workbook_BeforeClose,以便不会触发它。

Workbook_BeforeClose触发的唯一方法是closures工作簿。