繁体   English   中英

错误424所需的对象3

[英]Error 424 Object required 3

有人可以帮我弄清楚为什么我会收到此错误吗? 这是我的代码,它说错误从第3行开始。

Sub Select_Button()
    Msg = ""
    For i = 0 To ListBox7.ListCount - 1
        If ListBox7.Selected(i) Then
            Msg = Msg & ListBox7.List(i) & vbNewLine
        End If
    Next i
    MsgBox "You Selected: " & vbNewLine & Msg
    Unload UserForm
End Sub

UserForm ,而不是对象 Unload用于卸载对象

错误源于此行:

Unload UserForm

如果您的表单名为UserForm1 ,则应显示为:

Unload UserForm1

但是,这有悖于最佳做法,最终会在后端给您带来痛苦。

表单具有默认的全局实例 ,因此在执行此操作时:

UserForm1.Show vbModal

您正在使用默认实例 ,而不是新对象。 如果执行Unload UserForm1 ,则要卸载该默认实例 ,这意味着如果您执行正确的操作并使用如下对象

With New UserForm1
    .Show vbModal
    '...
End With

然后,卸载默认实例将绝对不会执行您认为会做的事情。

这就是为什么要在每次要引用对象的当前实例时都使用Me关键字的原因。 因此,要卸载UserForm1对象的当前实例 ,您需要执行以下操作:

Unload Me

考虑调用Me.Hide而不是卸载对象,并在表单的代码隐藏之外实现逻辑。 将来你会很感激的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM