关闭excel文件时关闭userform而不留下其他工作簿

关闭excel文件时关闭userform而不留下其他工作簿,excel,vba,Excel,Vba,如何在关闭userform时关闭excel文件而不关闭其他excel文件 我使用了这段代码,但它会关闭所有正在运行的工作簿 Private Sub CommandButton1_Click() Unload UserForm1 Workbooks("ThisWorkbook1").Close SaveChanges:=True End Sub 如何修复此代码 多谢各位 这就是卸载表单的默认实例,它可能是也可能不是当前正在运行的实例。避免在表单的代码隐藏中引用UserFormModu

如何在关闭userform时关闭excel文件而不关闭其他excel文件

我使用了这段代码,但它会关闭所有正在运行的工作簿

Private Sub CommandButton1_Click()
   Unload UserForm1
   Workbooks("ThisWorkbook1").Close SaveChanges:=True
End Sub
如何修复此代码

多谢各位

这就是卸载表单的默认实例,它可能是也可能不是当前正在运行的实例。避免在表单的代码隐藏中引用UserFormModuleName:改用我:

也就是说,如果您计划在这之后关闭包含工作簿的文档,那么是否卸载表单几乎没有任何区别。事实上,我不想看到我不久前写的东西

假设您打算关闭此工作簿,即包含此VBA代码的代码,则使用此工作簿来限定工作簿。关闭成员调用:

ThisWorkbook.Close SaveChanges:=True
也就是说

Workbooks("ThisWorkbook1").Close SaveChanges:=True
该指令只能关闭一个工作簿,如果它没有因为没有打开ThisWorkbook1工作簿而导致错误9,那么它不可能关闭所有打开的工作簿,因为您的公主在另一座城堡中


我将查看调用UserForm1.Show的代码;如果在.Show调用之后有代码执行类似于Application.Quit的操作,那么这就是为什么一切都结束了:假设您已经向我们展示了所有内容,表单的代码隐藏不可能做到这一点。

可能是您关闭的工作簿触发了其他事件,使其他工作簿无法访问close@FoxfireAndBurnsAndBurns我不这么认为工作簿1与其他人没有任何联系,我不认为这不是一个好的答案。确保它不会。在卸载UserForm1之前键入Stop并执行代码。它将停在这一行,然后从那里,用F8执行它,一行一行地调试它,这样您就可以看到所有工作簿关闭的确切时刻。为什么。谢谢你说得对。我有一个申请。在代码中退出
ThisWorkbook.Close SaveChanges:=True
Workbooks("ThisWorkbook1").Close SaveChanges:=True