我对VBA知之甚少,但我正在尝试为excel工作簿设计用户表单。想法是单击按钮,调出用户窗体,输入信息,点击确定,您的信息格式正确并插入工作表。
我有3个用户表单都可以正常工作,但我创建的任何引用其中一个的宏都无法识别该特定用户表单是否存在。
我遇到问题的代码非常简单:
Private Sub LiquidFormButton_Click()
LiquidEntryUserform.Show
End Sub
编辑(更新):所以我尝试使用不同的名称创建一个新的用户表单。我将对象的所有控件复制并粘贴到新的用户窗体,更改了宏的名称以显示用户窗体,瞧,它可以工作。但是,现在userform本身没有做任何事情,因为没有任何控件实际上有任何代码,告诉他们该怎么做。那很好,我只是复制破碎形式的代码和BOOM现在它不起作用。尽管新的用户形式和破坏的用户形式实际上除了显示之外还需要做其他所有事情,因此在用户形态本身内非常简单的编码中的某些东西阻止了它的显示。我会稍后在一些涉猎后发布完整的用户形式代码。谢谢!
答案 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
我的项目如下:
您可以使用对象浏览器(查看|对象浏览器或点击 F2 )查找项目中的表单和类:
答案 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
希望对某人有帮助。