我知道如何在像
这样的括号中循环遍历数字For i = 0 To (ComboBox4.ListCount - 1)
If ComboBox4.Value = ComboBox4.List(i) Then inList = True
Next i
但是我如何遍历括号中没有的数字?就像连续编号的名字一样:
Me.ComboBox1.Value = ""
Me.ComboBox2.Value = ""
Me.ComboBox3.Value = ""
我尝试过:
for i=1 to 3
"Me.ComboBox"&i&".Value" = ""
next i
但这不起作用。看起来如何?
答案 0 :(得分:3)
您将使用Controls集合。
例如:
Me.Controls("ComboBox" & i)
修改:
由于表单上的控件是集合的一部分,因此您还可以遍历集合,依次拉动每个控件:
Private Sub UserForm_Initialize()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is MSFORMS.ComboBox Then
' If TypeName(ctl) = "ComboBox" Then
MsgBox ctl.Name
End If
Next ctl
End Sub
我添加了两种方法来标识@CallumDA建议的控件类型。
TypeName
函数返回一个字符串,当您需要存储或显示对象的类名时,它是最佳选择。 TypeOf...Is
运算符是测试对象类型的最佳选择,因为它比使用TypeName进行等效的字符串比较要快得多。答案 1 :(得分:1)
您可以使用控件功能:
Me.Controls("ComboBox" & i).Value = 'your code...