楼主是什么意思!代码呢?
On the Form:three command!Test: Private Sub Form_Load()
    For Each Control In Me.Controls
        Debug.Print Control.Name
    Next
End SubCommand3
Command2
Command1

解决方案 »

  1.   

    o 我的意思是,如果我有一个控件 command1,我想通过 'command1' 这个名字,来取的 command1 这控件,然后对这控件做 操作。
    说白了,就象 vc 中那样通过 ID 得到控件对象。
    但是,我不想用循环 
    For Each Control In Me.Controls
           
    Next
    ,太耗资源了。
      

  2.   

    Private Sub Form_Load()    Call SetCommand(Command1)End SubPublic Sub SetCommand(ctl As CommandButton)
        ctl.Caption = "测试"
    End Sub
      

  3.   

    在 VB 中做一些共通的东西真是累,看来只能做控件和代码生成器了, VC 累
    VB 也累,用什么好呢,JAVA?
      

  4.   

    噢!
    w18ily(信誉:被封杀(郁闷,狂散8000,砍)) 兄:
        我的意思是:
            dim cmdGetAcdName as CommandButton
            set cmdGetAcdName=getCommand("command1")
            
            cmdGetAcdName.Caption="测试"        
            
        private function getCommand(byval strCmdName as string) as commandbutton
               
        end function就是要实现 getCommand 这个函数!
      

  5.   

    CallByName 函数      执行一个对象的方法,或者设置或返回一个对象的属性。语法CallByName(object, procedurename, calltype,[arguments()])CallByName 函数的语法有以下部分:部分 描述 
    object 必需的;变体型(对象)。函数将要执行的对象的名称。 
    procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。 
    calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。 
    arguments() 可选的:变体型(数组)。 
    说明CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:CallByName Text1, "MousePointer", vbLet, vbCrosshair
    Result = CallByName (Text1, "MousePointer", vbGet)
    CallByName Text1, "Move", vbMethod, 100, 100
      

  6.   

    add a reference to VBScript library and use EVAL("Command1"), :-)
      

  7.   

    CallByName是可以用的,用下面的代码可以实现你的功能Public Sub GetControl(sControlName as string) as Object
        Set GetControl = CallByName(Me,sControlName,vbGet)
    End SubGetControl("Command1").Caption = "aaaaa"不过提醒你,这样的代码虽然看上去简单,但效率比For each 还要低最实用的办法是自己构造一个CollectionCollection.Add "Command1",Command1Collection("Command1").Caption = "AAAAAA"