提问人:Renaat 提问时间:10/14/2023 更新时间:10/14/2023 访问量:67
VBA Excel - 打开一个用户窗体时关闭另一个用户窗体
VBA Excel - Closing one user form when opening the other
问:
我的 excel VBA 项目中有两个用户窗体。在形式 1 中,我有一个函数,其中我收集了 3 个公共变量,然后我打开第二个形式并传递变量。到目前为止,一切正常。但是,我也希望第一个表格在第二个表格打开时关闭。这是行不通的。我尝试了不同的设置,包括两种形式的模式和无模式打开,并将 Unload 语句放在第二种形式的 Initialize 中以及第一种形式的 sub 末尾。这些都不起作用。这就是我现在所拥有的
在我的第一个表格(FormStart)中,我有这个
Private Sub Btn_RondeHeropenen_Fx_Click()
'Here I collect my variables to populate the ScanTool form
VerwerkenRetour = True 'this is a public variable that I want to use to determine where I came from when opening ScanTool
ScanTool.Show
End Sub
在ScanTool表格中,我有这个
Private Sub UserForm_Initialize()
If VerwerkenRetour = True Then
'I first write my variables into the form (works fine)
Btn_Start_Fx_Click 'and then I run a function (works fine as well)
Unload (FormStart)
End If
End Sub
上面的代码执行所有查找,但不关闭 FormStart。在此代码版本中,我收到错误:
“运行时错误 361:无法卸载对象或将其从内存中删除”
我已经将 Unload 语句移到了 FormStart 中子的末尾,紧挨着 Show.ScanTool 指令的下方,但在那里它可能被忽略,因为它不再是活动形式。
关于我做错了什么,有什么建议吗?
一如既往,提前感谢您的帮助。
答:
0赞
Red Hare
10/14/2023
#1
只是为了展示它是如何工作的,原理 两个用户窗体,一个带按钮
UserForm1 代码:
Option Explicit
Private Sub CommandButton1_Click()
Me.Hide ' hides the UF
UserForm2.Show vbModal ' loads and show the other UF
Unload Me ' When UserForm1 is closed it returns here and we close it
End Sub
评论
0赞
Renaat
10/15/2023
感谢 Red Hare,虽然在 Form 2 打开时它没有关闭 Form 1,但它确实达到了目标。用户无法以“不受控制”的方式返回 Form 1。
评论
Unload FormStart
否 ()。