在模块中调用UserForm_Initialize()

时间:2012-12-20 03:17:28

标签: excel vba module userform

如何在UserForm_Initialize()而不是UserForm代码对象中调用Module

3 个答案:

答案 0 :(得分:9)

来自模块:

UserFormName.UserForm_Initialize

只需确保在您的用户表单中更新子代码,如下所示:

Public Sub UserForm_Initialize()所以可以从表单外部调用它。

或者,如果尚未加载Userform:

UserFormName.Show最终会调用UserForm_Initialize,因为它会加载表单。

答案 1 :(得分:3)

恕我直言,方法 UserForm_Initialize应保持私密,因为它是UserForm的<< strong>事件处理程序。

创建UserForm的新实例时,将调用此事件处理程序。在这个偶数处理程序中,你可以初始化UserForm1类的私有成员。

示例:

标准模块代码:

Option Explicit

Public Sub Main()
  Dim myUserForm As UserForm1

  Set myUserForm = New UserForm1
  myUserForm.Show

End Sub

用户表单代码:

Option Explicit

Private m_initializationDate As Date

Private Sub UserForm_Initialize()
  m_initializationDate = VBA.DateTime.Date
  MsgBox "Hi from UserForm_Initialize event handler.", vbInformation
End Sub

答案 2 :(得分:1)

解 在这段时间之后,我设法解决了这个问题。

在模块中: 用户窗体(名称).Userform_Initialize

此方法最适合动态初始化当前UserForm