正确的VBA代码可以在不保存的情况下关闭工作簿

时间:2016-05-27 05:11:45

标签: excel-vba excel-2007 vba excel

每当多个工作簿打开时执行代码,办公室就会停止处理消息

  

Microsoft Office Excel已停止工作

     

Windows可以尝试恢复您的信息并重新启动该程序。

代码有什么问题?我在Windows7上使用MS Office 2007

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    close_without_saving
End Sub

Sub close_without_saving()
    Application.DisplayAlerts = False
    ThisWorkbook.Saved = True

    If Application.Workbooks.Count < 2 Then
        Application.Quit
    Else
        ThisWorkbook.Close
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

如果要在不合并更改的情况下关闭工作簿。然后你可以在工作簿模块〜

中使用这样的代码
Sub Auto_Close() 
    ThisWorkbook.Saved = True 
End Sub

您也可以使用它来关闭工作簿而不保存更改。

Sub CloseBook2() 
    ActiveWorkbook.Close savechanges:=False 
End Sub

此例程可以附加到Close X Button。工作簿永远不会部分关闭,它将始终关闭此工作簿中包含的所有工作表。 DisplayAlerts = False,随后True可以包含在例程中。这不应该像

那样造成问题
Sub CloseBook() 
    Application.DisplayAlerts = False 
    ActiveWorkbook.Close 
    Application.DisplayAlerts = True 
End Sub