现在有很多LABEL控件(不是数组),我想逐一的访问它们并给某属性赋值
  用
      FOR i=1 TO 20
    label(i).CAPTION=“……“
    NEXT i  
写成 LABEL(i) 或“LABEL“& i 的形式都不对,请问有什么好方法吗?

解决方案 »

  1.   

    FOR i=1 TO 20
       me("LABEL" & i).CAPTION="……"
       NEXT i 
      

  2.   

    选择一个label,然后ctrl+c,然后ctrl+v,有提示说是否建立控件数组,点是就建立了,注意查看控件的index属性。以后访问就是label1(数字),label1.count就是数组个数。
      

  3.   

    控件数组很简单:
    Option ExplicitPrivate Sub Command1_Click()
       Dim i As Long
       For i = 0 To 20
           Label1(i).Caption = "标签" & i
       Next
       
    End Sub
      

  4.   

    不是控件数组也很简单:
    Option ExplicitPrivate Sub Command1_Click()
       Dim i As Long
       Dim obj As Object
       For Each obj In Me
           If InStr(1, obj.Name, "Label") > 0 Then
              obj.Caption = "标签" & i
              i = i + 1
           End If
       Next
    End Sub
      

  5.   

    或者:
    Option ExplicitPrivate Sub Command1_Click()
       Dim i As Long
       For i = 1 To 20
           Controls("Label" & i).Caption = "标签" & i
       Next
    End Sub
      

  6.   

    谁都知道用数组,只是根据楼主的要求“现在有很多LABEL控件(不是数组)”,竞争太激烈了,楼主结贴吧。
      

  7.   

    这样:Dim a As Object'声明a是对象类型
    For Each a In Controls'对Controls对象(某一个窗体的控件集合对象)做重复的操作
       If Type a.Name Is Label Then'提供当前控件名称,检查其是否是Label控件
         a.Caption="~~~"’如果是,就将控件的caption属性设置为~~~
       End If
    Next试试吧
      

  8.   

    纯MARK,本楼不蹭分,建议给小白猫
      

  9.   

    很简单
     For I = 0 To Me.Controls.Count - 1
        If (TypeOf Me.Controls(I) Is label) Then         
             Me.Controls(I). = 。
        End If
     Next I
    ....就是该控件的属性,“=”后面填你想修改的内容。
    不需要知道控件的索引。
    “Is label”可换成其他控件类型。