VBA循环通过连续编号的名称



我知道如何通过括号中的数字循环

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...

相关内容

  • 没有找到相关文章

最新更新