VBA表单消失

我有一个VBA的forms,当我点击它,执行一些长时间的计算(几秒到几秒钟),然后在窗体中的框架中显示结果。 然而,每隔一段时间一次,窗体就隐藏起来,我需要点击VBA编辑器,然后返回到表单再次显示

我有

Me.Repaint 

在表格的计算结束,但它仍然没有帮助

我也尝试禁用主表的“EnableCalculation”属性,但仍然没有用

任何人都遇到过这样的事情? 我是否需要以某种特殊的方式加载表单?

您是否尝试过closures和更新屏幕,以便Excel不会在每次更改时重新绘制屏幕。

 sub doSomthing() Application.ScreenUpdating = False 'do something Application.ScreenUpdating = True end sub 

这个表单消失了,因为微软已经改变了“上级”过程所拥有的模式(你的案例中的Excel)。 我有同样的问题,也无法克服它。

直到微软决定通过修改已经工作的东西来解决另外一个引入和未经testing的问题是值得的。

我曾经也有过一样的问题。 通过单击无模式用户窗体上的命令button保存Excel工作簿时,窗体随代码完成而消失。

我读到这个问题是由于微软所做的一些兼容性改变,并且发现了一些非常复杂的解决scheme,涉及到很多复杂的代码,我无法将其集成到我的项目中。 但是,我find了一个非常快速的解决方法。

在我的情况下,只有当代码执行命令button代码的End Sub命令时,用户窗体才会消失。 我只是在它之前立即添加一个Exit Sub ,并且用户窗体不再消失。

尝试使用以下两行代码而不是重绘。

 Me.Show 

和/或:

 Me.SetFocus 

希望其中的一个能为你效劳!

在我的情况下,我不得不使用所有这些来实现它。 (frmGUI是我的forms)DoEvents
frmGUI.Repaint frmGUI.Show

对于Office 2013和Windows 7,只需在sub表单消失之前添加DoEvents即可将表单保持打开状态。 没有别的需要….为我的情况。