a是combobox控件数组
function b(a,min ,max)
怎样在b重可使用a(min)到a(max)控件,参数应怎样窜

解决方案 »

  1.   

    主要是a怎么传,传a 还是a(0),b中的参数怎么定义b(byref a as combobox,byval min as integer,byval max as integer)这样行吗
      

  2.   

    '建立combobox控件数组,名为combo1,Index设为从0-4
    Option Explicit
    Function b(a, min, max)
    '建议能明确类型的参数,尽量指定,所以可用
    'Function b(a, min As Integer, max As Integer)
    '或
    'Function b(a As Variant, min As Integer, max As Integer)
        Debug.Print a(min).Text
        Debug.Print a(max).Text
    End Function
    Private Sub Form_Load()
        b Combo1, 0, 4
    End Sub
      

  3.   

    sub b(aa() as combobox,min as integer  ,max as integer)
           ....
           aa(min)到aa(max)
           ....
    end sub
    b中用的時候﹐a(min)到a(max)就行了
    call b(a,min,max)
      

  4.   

    谢谢homezj(小吉) ,搞定。不过还有点问题,怎样判断参数的有效性,min max是否越界, a 是否是数组
      

  5.   

    LBound 属性 
          返回控件数组中的控件的最低有序值。语法object.LBoundobject 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。说明LBound 属性的设置值与数组中第一个控件的 Index 属性值相等。该值的典型值为 0,因为 Visual Basic 自动地给控件数组中的第一个控件分配为 0 的 Index 值。如果将控件数组中的第一个控件的 Index 值手工地改为别的值(例如 1),那么 LBound 将返回手工分配的 Index 值(在这个例子中为 1)。
    UBound 属性 
          返回控件数组array中控件的最高有序值。语法object.UBoundobject 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。说明UBound 与控件数组中最后一个控件的 Index 属性值相等。
      

  6.   

    zxdio()大哥你的方法我试了不行,提示类型不匹配缺少数组合用户定义类型
      

  7.   

    wzzwwz(棒子面窝头)你的方法可以,不过对不是数组的控件没法判断
      

  8.   

    不是数组的控件当然不能用LBound与UBound,你传入时应该设立个标志,比如将max=-1其实控件数组的index并不一定是连续的,在min与max之间,是可能有不存在的元素的,要想完善,还有不少判断要去做。简单点,可用On Error处理。