Excel VBA:子系统中的调用窗体

Excel VBA:子系统中的调用窗体,excel,vba,Excel,Vba,我有一个很大的问题,从一个子系统调用用户表单 这是我代码的一部分: Sub TestForArray(ObjectName,FormName As String) Forms(FormName).Controls(ObjectName).List = NewArr End sub 当我在私人潜水艇上呼叫这艘潜水艇时,就像这样 Private Sub UserForm_Initialize() Call TestForArray("Form1", "ComboBox1")

我有一个很大的问题,从一个子系统调用用户表单

这是我代码的一部分:

Sub TestForArray(ObjectName,FormName As String)       

Forms(FormName).Controls(ObjectName).List = NewArr

End sub
当我在私人潜水艇上呼叫这艘潜水艇时,就像这样

Private Sub UserForm_Initialize()

Call TestForArray("Form1", "ComboBox1")

End Sub
我得到了错误;“子功能或功能未定义”和HIGHlights表示单词形式


我做错了什么?

如果目标是从不同的UserForms调用一个子集来初始化UserForm的控件,那么可以将UserForm本身作为参数

例如:

Sub TestForArray(oForm As UserForm, sObjectName As String)
  aNewArr = [{1,2,3,4,5,6}]
  oForm.Controls(sObjectName).List = aNewArr
End Sub
以及:

问候


Axel

由于没有表单集合,因此发生错误。只有一个UserForms集合,但它不能仅用于带有索引号的UserForms名称。目标是什么?在初始化一个用户窗体时,是否在另一个用户窗体中设置组合框的列表?为什么?为什么不使用另一个Userform的_Initialize事件来初始化它?@AxelRichter感谢您的回复。因为我有很多不同的用户表单,其中有一些组合框。如果有机会调用这个函数来填充组合框,那就太好了。
Private Sub UserForm_Initialize()
 Call TestForArray(Me, "ComboBox1")
End Sub