Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
VBA excel-模块与用户窗体中的类似控件和连接函数?_Excel_Vba_Combobox_Controls_Concatenation - Fatal编程技术网

VBA excel-模块与用户窗体中的类似控件和连接函数?

VBA excel-模块与用户窗体中的类似控件和连接函数?,excel,vba,combobox,controls,concatenation,Excel,Vba,Combobox,Controls,Concatenation,我正在使用VBA excel和组合框制作一份调查问卷。我有36个组合框(cmb1、cmb2、cmb3…cmb36),我使用For循环从excel工作表“选项”中填充组合框,使用以下代码: Private Sub UserForm_Initialize() For i = 1 To 36 Controls("cmb" & i).RowSource = "Options!A1:A5" Next i End sub 这是可行的,但我想用模块来做

我正在使用VBA excel和组合框制作一份调查问卷。我有36个组合框(cmb1、cmb2、cmb3…cmb36),我使用For循环从excel工作表“选项”中填充组合框,使用以下代码:

Private Sub UserForm_Initialize()
For i = 1 To 36
   Controls("cmb" & i).RowSource = "Options!A1:A5"
Next i 
End sub
这是可行的,但我想用模块来做一些类似的事情(例如,通过调用模块中的函数来填充组合框,而不是用UserForm初始化它们),但我无法在模块中使用控件函数,因此我不知道如何连接“cmb”和“i”,并做一些类似的事情


任何帮助都将不胜感激,谢谢

以下是完成任务的一种方法:

用户表单代码

Option Explicit

Private Sub UserForm_Initialize()
   InitControls Me
End Sub
Option Explicit

Public Sub InitControls(ByVal MyForm As UserForm)
   Dim i As Integer

   For i = 1 To 36
      MyForm.Controls("cmb" & i).RowSource = "Options!A1:A5"
   Next i
End Sub
模块代码

Option Explicit

Private Sub UserForm_Initialize()
   InitControls Me
End Sub
Option Explicit

Public Sub InitControls(ByVal MyForm As UserForm)
   Dim i As Integer

   For i = 1 To 36
      MyForm.Controls("cmb" & i).RowSource = "Options!A1:A5"
   Next i
End Sub