For each obj In Controls 
    if IsArray(obj) then
            存在
            Exit For
    End If
Next obj

解决方案 »

  1.   

    先用控件的Count属性获得已加载的控件个 数
      

  2.   

    Private Function IsCtrlArray(ctl As Control) As Boolean
        On Error GoTo CtrlErr
        
        Debug.Assert ctl.Index
        IsCtrlArray = True
        Exit Function
    CtrlErr:
        IsCtrlArray = False
    End Function
    如果函数返回True表示有控件数组。
      

  3.   

    问题: 如何判断某控件是否为控件数组?
    解答: [chickenzzz(打呼噜的小鸡) 提供]
          在 Form 中编写如下函数:
          Private Function IsControlArray(ControlName As String) As Boolean
                  IsControlArray = (VBA.VarType(VBA.CallByName(Me, ControlName, VbGet)) = vbObject)
                  'IsControlArray = (VBA.TypeName(VBA.CallByName(Me, ControlName, VbGet)) = "Object")
          End Function
      

  4.   


    Private Function IsCtrlArray(ctl As Control) As Boolean
        On Error Resume Next
        Dim i As Integer
        Dim ctl As Control
        For Each ctl In Me.Controls
            Err.Clear
            i = ctl.Index
            If Err.Number = 0 Then
                IsCtrlArray = True
                Exit Function
            End If
        Next
        IsCtrlArray = False
    End Function