我创建了一个"工作簿"在Microsoft Excel中,我使用以下
插入了三个UserForms名:
我在" Workbook_Open"中编写了代码。事件,以便我的" MainForm"显示,当我打开我的
工作簿。我写的代码如下:
Private Sub Workbook_Open()
MainForm.Show
End Sub
我的#34; MainForm"包含两个按钮: 1. OpenFirstFormCommandButton 2. OpenSecondFormCommandButton
每个按钮都有一个点击事件,其中" MainForm"隐藏和相应的
UserForm显示。
" OpenFirstFormCommandButton"的点击事件CommandButton位于" MainForm"
如下:
Private Sub OpenFirstFormCommandButton_Click()
MainForm.Hide
FirstForm.Show
End Sub
当" OpenFirstFormCommandButton_Click"事件被触发," MainForm"隐藏和
" FirstForm"示出。
" OpenSecondFormCommandButton"的点击事件
上的CommandButton"的MainForm"如下:
Private Sub OpenSecondFormCommandButton_Click()
MainForm.Hide
SecondForm.Show
End Sub
当" OpenSecondFormCommandButton_Click"事件被触发," MainForm"隐藏和
" SecondForm"示出。
到目前为止一切顺利。这就是为#34; MainForm"。
编写的所有代码让我们看一下为" FirstForm"而对于" SecondForm"现在
" FirstForm"包含代码,仅用于" UserForm_QueryClose"事件,在
中触发我们尝试关闭" X"按钮出现在
的右上角" FirstForm"形成。代码如下:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
FirstForm.Hide
MainForm.Show
End Sub
" UserForm_QueryClose"的目标事件,是隐藏" FirstForm"并显示
"的MainForm"
" SecondForm"包含与" FirstForm"完全相同的逻辑。通常是
的唯一代码" SecondForm"在" UserForm_QueryClose"事件并且如下:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
SecondForm.Hide
MainForm.Show
End Sub
这就是我们拥有的所有代码。
很明显,我正在尝试使用主表格,我可以从中打开其他表格,如果我关闭其他表格,我想返回主表格。这实际上是代码应该做的,但不幸的是,代码表现得有点滑稽。
当我打开我的工作簿时,#34; MainForm"打开它应该做的,因为我已经在" Workbook_Open"中编写了这样的代码。事件。当我点击" OpenFirstFormCommandButton" CommandButton," FirstForm"显示" MainForm"隐藏,这也是绝对正常的行为。然后我点击" X"按钮位于" FirstForm"的右上角因此," FirstForm"隐藏和" MainForm"显示。直到现在都没有有趣的行为第二次点击" OpenFirstFormCommandButton" CommandButton位于" MainForm"。 " FirstForm"显示," MainForm"隐藏,这是正常的。当我尝试点击" X" " FirstForm"的按钮(第二次)" FirstForm"不隐藏和" MainForm"虽然在" UserForm_QueryClose"中有代码,但是没有显示。事件,就是这样。
第一个问题是,我该如何克服这个问题? 第二个问题是,为什么代码被停用?为什么代码不运行?
如果您遇到此问题或者您有任何想法如何克服这种情况,请给我发消息。
提前谢谢。
答案 0 :(得分:3)
你让窗口管理员感到困惑。
默认情况下,.Show()
以模态方式显示表单(也就是说,必须有另一个表单相对于该表单是模态的)。在圆形设置中,这不起作用。
将所有表单中的所有.Show
替换为.Show vbModeless
。
顺便说一下,你不是“正确关闭表格”。它们仍然在内存中加载,只是不可见。