首页 > 解决方案 > 如何在按下按钮打开用户表单后立即填充它?

问题描述

我有一个使用表单的用户表单,但它仅在我单击“清除”按钮时才会填充。

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

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

谢谢!

标签: excelvba

解决方案


这是我从主宏激活用户窗体的代码示例:

UserForm1.Show

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

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

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

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


推荐阅读