在Excel VBA中选择另一个用户窗体或空格时如何关闭用户窗体?

时间:2018-07-08 04:15:33

标签: excel vba excel-vba userform

每当用户单击用户窗体上的Debit AccountCredit Account字段时,都会弹出另一个带有Treeview的用户窗体。但是,用户将始终必须按“取消”才能关闭用户窗体。选择Voucher Entry Form用户窗体的区域后,用户窗体是否可以自动关闭?

Sample Userform

1 个答案:

答案 0 :(得分:1)

如果问题是“如果它不是活动对象,如何卸载用户表单?”那么相关的用户表单必须是无模式的。因为否则在不关闭窗口的情况下无法将其禁用。而且由于无法从模式用户窗体中打开无模式用户窗体,因此主用户窗体也必须是无模式的。

示例:

要做两个用户表单:

第一个用户窗体名为“ MainForm”,具有一个按钮控件,并应用了以下代码:

Private Sub CommandButton1_Click()
 Load SubForm
 SubForm.Show vbModeless
 SubForm.Left = Me.Left + 100
 SubForm.Top = Me.Top + 100
End Sub

第二个用户表单名为“ SubForm”,可以为空,但应用了以下代码:

Private Sub UserForm_Deactivate()
 Unload Me
End Sub

然后默认模块中的Sub之后显示主要形式:

Sub test()
  MainForm.Show vbModeless
End Sub

现在,在显示MainForm之后,可以通过单击按钮打开SubForm。而且,如果MainForm再次获得活动表单(再次获得焦点),则SubForm将卸载。