如何在关闭用户窗体时关闭 Excel 文件而不关闭其他 Excel 文件。
我使用了这段代码,但它破坏了所有正在运行的工作簿。
Private Sub CommandButton1_Click()
Unload UserForm1
Workbooks("ThisWorkbook1").Close SaveChanges:=True
End Sub
我该如何修复此代码,
谢谢
Unload UserForm1
这是卸载表单的默认实例,该实例可能是当前正在运行的实例,也可能不是当前正在运行的实例。避免引用窗体代码隐藏中的UserFormModuleName
:请改用Me
:
Unload Me
也就是说,如果您打算在此之后关闭包含工作簿,则无论是否卸载表单都几乎没有任何区别。事实上,我会完全避免Unload
(请参阅我不久前写的这篇文章)。
假设您打算关闭ThisWorkbook
(即包含此 VBA 代码的代码),则使用ThisWorkbook
来限定Workbook.Close
成员调用:
ThisWorkbook.Close SaveChanges:=True
可是。。。
Workbooks("ThisWorkbook1").Close SaveChanges:=True
该指令只能关闭一个工作簿,如果它没有因错误 9 而爆炸,因为没有打开ThisWorkbook1
工作簿 -您的公主在另一个城堡中,这不可能关闭所有打开的工作簿。
我会查看调用UserForm1.Show
的代码;如果在.Show
调用之后有代码在做类似Application.Quit
的事情,那么这就是一切都关闭的原因:假设你已经向我们展示了所有这些,表单的代码隐藏不可能这样做。