Vba 关闭前已删除工作簿中的工具栏,但如果用户单击“取消”,则不会重新出现

Vba 关闭前已删除工作簿中的工具栏,但如果用户单击“取消”,则不会重新出现,vba,excel,Vba,Excel,我有一个自定义工具栏,它是在workbook\u BeforeClose事件中打开和删除工作簿时创建的。但是,如果随后提示用户保存文件(关闭前)并单击“取消”,则文件不会关闭,但我不知道如何自动重新创建工具栏 是否有任何事件会在此时触发,我可以从中调用代码来创建工具栏 您必须评估取消属性 如果用户单击“取消”,则“取消”属性将设置为true 您的代码将如下所示: Private Sub Workbook_BeforeClose(Cancel As Boolean) If Cancel

我有一个自定义工具栏,它是在
workbook\u BeforeClose
事件中打开和删除工作簿时创建的。但是,如果随后提示用户保存文件(关闭前)并单击“取消”,则文件不会关闭,但我不知道如何自动重新创建工具栏


是否有任何事件会在此时触发,我可以从中调用代码来创建工具栏

您必须评估取消属性

如果用户单击“取消”,则“取消”属性将设置为true

您的代码将如下所示:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
     If Cancel = True Then
         'Do something on cancel
     Else
         'Do something when not cancelled
     End if
End Sub
或者,您可以仅在“取消”为false时进行检查,并且仅在这种情况下删除工具栏


如果这不能满足您的需要,那么您可以将代码添加到AfterSave方法并检查Success属性。

Cancel
总是
False
进入处理程序-您可以选择是否在处理程序中将其设置为
True
,在这种情况下,关闭被取消,工作簿保持打开状态。向处理程序中添加一些代码,以检查工作簿是否需要保存,如果需要保存,则提示用户是否要保存(或取消关闭)。