我知道如何通过括号中的数字循环
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
但这不起作用。它应该如何?
您将使用控件集合。
例如:
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建议的控制类型。
Microsoft写道:
-
TypeName
函数返回字符串,是您需要存储或显示对象的类名时的最佳选择。 -
TypeOf...Is
操作员是测试对象类型的最佳选择,因为它比使用TypeName的等效字符串比较快得多。
您可以使用控件功能:
Me.Controls("ComboBox" & i).Value = 'your code...