按下按钮后如何立即填充用户表单?

时间:2018-06-22 15:06:14

标签: excel excel-vba vba

我有一个使用表单的useform,但是只有当我单击“清除”按钮时,它才会填充。

Private sub userform1_Initialize()
'stuff populating a page

然后在同一页面上,我有:

Private Sub ClearButton_Click()
Call UserForm1_Initialize
End Sub

我该如何使用:

Call UserForm1_Initialize

弹出表单时会在哪里填充我的表单?

我尝试将其放在按钮中以打开表单(第三行):

Private Sub CommandButton1_Click()
UserForm1.Show 
UserForm1_Initialize
End Sub

但是我得到了错误:

Compile error: 

Sub or Function not defined.

我尝试将初始化代码放在模块中而不是在表单中,但是出现错误:

Run-time error '424'

Object Required

我无法将整个代码放在模块中,因为它不知道在哪里寻找单元格,对吗?我究竟做错了什么? 我也尝试使用公共而不是私有。与上述相同。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是我的代码示例,可以从我的主宏激活用户表单:

UserForm1.Show

然后,输入用户窗体本身的代码(右键单击UserForm1,然后单击“查看代码”):

Private Sub UserForm_Initialize()
  ListBox1.List = ProgramScale
End Sub

这会在表单出现时自动填充表单上的列表框。

我认为Vincent G在上面的评论中是正确的,因为您的用户表单的子标题中不应包含表单号,例如UserForm_Initialize 不是 UserForm1_Initialize()。