在模块中调用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