【发布时间】:2019-11-29 22:32:41
【问题描述】:
工作表上的一个按钮会启动一个宏,该宏会打开一个用户表单(例如,userform1)。 Userform1 以非模式加载,以便用户同时使用 userform1 和工作表(即单击单元格)进行输入。 userform1 上有一个按钮,单击该按钮会打开另一个用户表单(例如,userform2)。 Userform2 是模态的。单击 userform2 上的 Cancel 按钮会按预期卸载 userform2;但是,由于某种原因,它也会卸载我不想要的 userform1。如果我将 userform1 设为模态,则卸载 userform2 不会卸载 userform1;但是,用户不能再使用(即单击)工作表中的单元格。我找不到任何信息可以让我知道为什么卸载一个用户窗体会同时卸载两者。
【问题讨论】:
-
Form 2 究竟是如何关闭的?什么命令/语法?你在使用“Unload.Me”吗?
-
啊,我重现了这个问题,做了一些研究,在tech-archive.net/Archive/Excel/… 找到了一个建议,在“卸载 Form2”之前和之后以及“Form2.Show”之前和之后添加了“DoEvents”!!我很确定你不需要所有这些 DoEvents,但你试一试......
-
我正在阅读您建议的网站,提交者说他关闭并重新启动了他的 Excel 应用程序并解决了问题。我这样做了,现在一切正常。这似乎表明使用 DoEvents (如您所建议的)可能会奏效。感谢您的帮助(尽管我希望我对真正发生的事情有更好的了解)。
-
我刚刚做的有趣的测试...我注释掉了 DoEvents,关闭,然后重新打开 Excel 文件,并且返回了不想要的结果 - 它再次关闭了两个表单。我只将“DoEvents”添加到“Form2.show”之后的行中,问题就消失了。希望这会有所帮助..
-
我刚刚做了同样的测试,结果也返回了我不想要的结果。我把'DoEvents'放在你建议的地方,它确实有效。我仍然不确定为什么会这样,但是......不要与成功争论。感谢您的帮助
标签: excel vba modal-dialog userform