在模块中调用UserForm_Initialize()

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

从一个模块:

 UserFormName.UserForm_Initialize 

只要确保在你的用户表单中,你像这样更新子版本:

Public Sub UserForm_Initialize()所以它可以从窗体外调用。

或者,如果用户窗体尚未加载:

UserFormName.Show将最终调用UserForm_Initialize因为它加载窗体。

恕我直言, UserForm_Initialize方法应保持私有,因为它是UserForm的Initialize事件事件处理程序

在创buildUserForm的新实例时调用此事件处理程序。 在这个偶处理程序中,你可以初始化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 

解决scheme毕竟这一次,我设法解决了这个问题。

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

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