使用 myForm.Hide 或 Unload Me 关闭用户窗体

Close userform using myForm.Hide or Unload Me

在开始之前,让我先介绍一下背景。我正在使用 Excel 进行 VBA 项目,而我使用的计算机资源有限(并且我被要求尽可能轻便以加快执行时间)。 在我的项目中,我在不同时间打开多个用户窗体,例如在我的 sheet 上应用过滤器。

正如我刚才所说的资源有限,我想知道 frmFilters.Hide 是否足以关闭用户表单,或者是否有更好的方法?

I've read about Unload Me 但我不确定它是如何工作的,因为我将从我的表单中应用过滤器,我需要在表单关闭后保留它们,直到用户完全关闭Excel 文件。

是否存在Unload Me优于frmFilters.Hide的情况?

此致, 梳毛

我找到了一个有趣的问题答案,我认为在这里 post 它会很有用。

卸载我

Unload me

如果您在项目的主窗体上这样做,则从内存中删除窗体并停止应用程序。您在表单中所做的所有修改都将丢失。

隐藏

myForm.Hide

只隐藏表格。如果您在应用程序的主窗体上这样做,这不会结束程序(例如,调试模式仍为 运行)。您在表单中所做的每项修改都将在您下次显示表单时保留。

使用哪一个?

视情况而定。在我的项目中,我的表单被设置为 open/close 多次,所以我选择只隐藏它以避免每次都为我的表单留出内存。