VBA excel-模块与用户窗体中的类似控件和连接函数?
我正在使用VBA excel和组合框制作一份调查问卷。我有36个组合框(cmb1、cmb2、cmb3…cmb36),我使用For循环从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 这是可行的,但我想用模块来做
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