在closures工作簿之前确认要保存

我在网上遇到了一些强制用户启用macros的vba代码。 当macros被closures时,它仅显示“Sheet1”,当它们被打开时,它隐藏“Sheet1”并取消隐藏工作表。 这是一个非常巧妙的代码,但有一个缺点。 当我closures文件时,它不会问我是否要保存文件。 它会自动保存,以便隐藏其余的表单。 我想知道是否有办法解决这个问题,也就是说,如果我可以启用“保存/closures而不保存”提示,并保持工作表隐藏,除了“Sheet1”

以下是代码:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Step 1: Declare your variables Dim ws As Worksheet 'Step 2: Unhide the Starting Sheet Sheets("Sheet1").Visible = xlSheetVisible 'Step 3: Start looping through all worksheets For Each ws In ThisWorkbook.Worksheets 'Step 4: Check each worksheet name If ws.Name <> "Sheet1" Then 'Step 5: Hide the sheet ws.Visible = xlVeryHidden End If 'Step 6: Loop to next worksheet Next ws 'Step 7: Save the workbook ActiveWorkbook.Save End Sub Private Sub Workbook_Open() 'Step 1: Declare your variables Dim ws As Worksheet 'Step 2: Start looping through all worksheets For Each ws In ThisWorkbook.Worksheets 'Step 3: Unhide All Worksheets ws.Visible = xlSheetVisible 'Step 4: Loop to next worksheet Next ws 'Step 5: Hide the Start Sheet Sheets("Sheet1").Visible = xlVeryHidden End Sub 

您可以将ActiveWorkbook.Save封装到自己的消息中,如下所示:

 If MsgBox("Would you like to save?", vbYesNo + vbQuestion, "Save Workbook") = vbYes Then ActiveWorkbook.Save End If