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