Vba 运行时错误';424';在导入的userform上执行userform.show时需要的对象

Vba 运行时错误';424';在导入的userform上执行userform.show时需要的对象,vba,excel,userform,Vba,Excel,Userform,我正在尝试导入一个userform,并在初始启动时显示它。userform导入很好,但是,当试图显示它时,我不断得到一个运行时错误'424'对象 这是我的密码: Sub Workbook_Open() Dim wkbTarget As Excel.Workbook Dim szTargetWorkbook As String Dim cmpComponents As VBIDE.VBComponents Application.ScreenUpdating = False szTargetWo

我正在尝试导入一个userform,并在初始启动时显示它。userform导入很好,但是,当试图显示它时,我不断得到一个运行时错误'424'对象

这是我的密码:

Sub Workbook_Open()

Dim wkbTarget As Excel.Workbook
Dim szTargetWorkbook As String
Dim cmpComponents As VBIDE.VBComponents
Application.ScreenUpdating = False
szTargetWorkbook = ActiveWorkbook.Name
Set wkbTarget = Application.Workbooks(szTargetWorkbook)
Set cmpComponents = wkbTarget.VBProject.VBComponents

' IMPORT FORM
cmpComponents.Import "\\myserver.domain\Application\Forms\LOGIN.frm"

LOGIN.Show

End Sub
当我在错误上单击“结束”时,我可以很好地显示用户表单。

运行时(感谢@Comintern!)不会喜欢您引用一个还不存在的对象。您可以使用:

Userforms.add("LOGIN").Show

避免直接引用。

编译器将向您引用一个尚不存在的对象。您可以尝试:
Userforms.add(“LOGIN”).Show
@Rory与其说是编译器对象,还不如说是运行时对象,它指向尚未编译的表单的预声明实例的引用。如果
UserForms.Add
不起作用,您可能需要通过
Application.OnTime
.UserForms.Add(“LOGIN”).show调用的简单sub来显示它。show工作得很好!非常感谢您的及时回复@Rory请将此作为答案发布。。。