小编SAF*_*AFD的帖子

如何正确加载和卸载Userform(VBA)

我花了最近几周编写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)按钮时,会出现以下错误 运行时错误'91'

调试器说错误位于cmdb1_Click()内.我尝试添加一个名为UserForm_QueryClose()的子,但错误仍然存​​在.如果我不得不猜测,我会说错误是由我处理加载和卸载的方式引起的,因此是cmdb1_Click().

编辑:

这是为了未来的读者.我的问题解决了,代码如下.ShowUserform和cmdbClos​​e_Click包含CallumDA建议的代码.我的命令按钮现在有:

Private Sub cmdb1_Click()
    Load frm1
    Call ShowUserform
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

11
推荐指数
2
解决办法
7万
查看次数

标签 统计

excel ×1

vba ×1