我花了最近几周编写UserForm编码.我的问题很简单,我应该在哪里加载和卸载frm1(Userform名称是frm1)以及我应该在哪里放置Me.Show和Me.Hide.问题是,UserForm中的(x)按钮不起作用.现在,我在Sheet1上写的Active-X命令按钮代码中找到了我的加载和卸载:
Private Sub cmdb1_Click()
Load frm1
Unload frm1
End Sub
Run Code Online (Sandbox Code Playgroud)
这样我的UserForm被初始化,我可以运行代码
Private Sub Userform_Initialize()
'Some other code that Works...
frm1.Show
End Sub
Run Code Online (Sandbox Code Playgroud)
这显示了我的Userform.现在,我的Userform中有一个包含代码的命令按钮
Private Sub cmdbClose_Click()
Me.Hide
End Sub
Run Code Online (Sandbox Code Playgroud)
我用来隐藏sub,在cmdb1_Click()中执行最后一行并卸载UserForm.这个作品.
但是,当我按下UserForm中的(x)按钮时,会出现以下错误
调试器说错误位于cmdb1_Click()内.我尝试添加一个名为UserForm_QueryClose()的子,但错误仍然存在.如果我不得不猜测,我会说错误是由我处理加载和卸载的方式引起的,因此是cmdb1_Click().
编辑:
这是为了未来的读者.我的问题解决了,代码如下.ShowUserform和cmdbClose_Click包含CallumDA建议的代码.我的命令按钮现在有:
Private Sub cmdb1_Click()
Load frm1
Call ShowUserform
End Sub
Run Code Online (Sandbox Code Playgroud)