表单按钮上的Userform.Show将无法识别userform,获得错误424

时间:2014-12-15 18:11:37

标签: excel vba excel-vba runtime-error userform

我对VBA知之甚少,但我正在尝试为excel工作簿设计用户表单。想法是单击按钮,调出用户窗体,输入信息,点击确定,您的信息格式正确并插入工作表。

我有3个用户表单都可以正常工作,但我创建的任何引用其中一个的宏都无法识别该特定用户表单是否存在。

我遇到问题的代码非常简单:

Private Sub LiquidFormButton_Click()

LiquidEntryUserform.Show

End Sub

编辑(更新):所以我尝试使用不同的名称创建一个新的用户表单。我将对象的所有控件复制并粘贴到新的用户窗体,更改了宏的名称以显示用户窗体,瞧,它可以工作。但是,现在userform本身没有做任何事情,因为没有任何控件实际上有任何代码,告诉他们该怎么做。那很好,我只是复制破碎形式的代码和BOOM现在它不起作用。尽管新的用户形式和破坏的用户形式实际上除了显示之外还需要做其他所有事情,因此在用户形态本身内非常简单的编码中的某些东西阻止了它的显示。我会稍后在一些涉猎后发布完整的用户形式代码。谢谢!

2 个答案:

答案 0 :(得分:0)

你应该实例化'形式如此

Private Sub LiquidFormButton_Click()

    Dim liquid as LiquidEntryUserform ' define a liquid var of the correct type
    Set liquid = new LiquidEntryUserform ' create the Form
    liquid.Show  'show it

    ' here you can still access variables 
    ' on the form
    If liquid.TextBox1.Text = "700" Then 
       'do things
    End if

End Sub

我的项目如下:

enter image description here

您可以使用对象浏览器(查看|对象浏览器或点击 F2 )查找项目中的表单和类:

enter image description here

答案 1 :(得分:0)

对UserForm进行一些更改后,我也有类似的经历。我注意到在发生424错误之前,某些东西实际上正在工作。事实证明,使用F8遍历我的代码,原来我是在要求配置一个已删除的控件!
我在MS XL Objects工作表中使用了此代码(该按钮在关联的工作表上)...

Private Sub cmdTransactions_Click()
 frmTransactions.Show
End Sub

在Forms模块中显示UserForm和此代码...

Private Sub UserForm_Initialize()
: : :
Row_Number = [mostrecent].Value
Cells(Row_Number + 1, 2).Select   <<< this bit was happening (.Select works for me!!)
: : :
cmdReset.Enabled = False   <<< a control in the UserForm
chkDeposit.Enabled = False  <<< this control had been deleted!! Remarked out but un-Remarked for clarity 
: : : 
End Sub

希望对某人有帮助。