关闭 Excel 文件时关闭用户窗体而不离开其他工作簿



如何在关闭用户窗体时关闭 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的事情,那么这就是一切都关闭的原因:假设你已经向我们展示了所有这些,表单的代码隐藏不可能这样做。

最新更新