Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在模块中调用UserForm_Initialize()_Excel_Vba_Module_Userform - Fatal编程技术网

Excel 在模块中调用UserForm_Initialize()

Excel 在模块中调用UserForm_Initialize(),excel,vba,module,userform,Excel,Vba,Module,Userform,如何在模块中调用UserForm\u Initialize() UserFormName.UserForm_Initialize 只需确保在userform中更新sub,如下所示: Public Sub-UserForm\u Initialize()因此可以从表单外部调用它 或者,如果尚未加载Userform: UserFormName.Show将调用UserForm\u Initialize,因为它加载了表单。imo方法UserForm\u Initialize应该保持私有因为它是初始化Us

如何在
模块中调用
UserForm\u Initialize()

UserFormName.UserForm_Initialize
只需确保在userform中更新sub,如下所示:

Public Sub-UserForm\u Initialize()
因此可以从表单外部调用它

或者,如果尚未加载Userform:


UserFormName.Show
将调用
UserForm\u Initialize
,因为它加载了表单。

imo方法UserForm\u Initialize应该保持私有因为它是初始化UserForm事件的事件处理程序

此事件处理程序在创建UserForm的新实例时调用。在这种情况下,偶数处理程序u可以初始化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
用户表单代码:

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
解决方案 经过这么长时间,我终于解决了这个问题

在模块中: UserForms(Name).Userform\u初始化


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

Hi,因此我应该将UserFormName.UserForm\u放在哪里初始化?无论您喜欢在哪里。。。子函数或函数中工作簿中的任何vba。感谢提供此方法。我能让它自己初始化吗?e、 g我得到了很多UserForm,我不想对它们进行编码。你可以在UserForms
循环中为每个uf使用
?在函数中,我尝试将UserFormName声明为UserForm/String,然后在参数中调用表单的名称,但仍然没有成功:(嗨,Daniel,想法不错。我想要的是在模块中为UserForm_Initialize创建一个函数(我还没有指定初始化哪个UserForm)。关于初始化哪个UserForm,我稍后会将其包含在UserForm中。我这样做的原因是因为我想在模块的IF-ELSE语句中包含init。我不理解你写的注释的含义,抱歉。通常你应该避免调用UserForm_Initilize()直接,因为类UserForm1本身会调用它,作为对UserForm1创建的反应。它是一个事件处理程序,因此它应该处理事件。1.我在模块12中有IF ELSE语句。在结束IF之前,我想重置UserForm1 3。我想在模块1中使用“reset”函数。P.很抱歉,我的解释不好Tan,我的e英语也不好:-)。你不能发布你的代码样本吗?我已经解决了我的问题,并在上面我自己的问题中发布了解决方案。你认为它好吗?