把一个字符串强制转换成对象
比如菜单按钮名为mnu1-mnu10,现知道ID号,想将其组合成菜单按钮名Function OpenMenu(MenuID As Integer)
    Dim objMenu As Menu              '这样写对吧
    objMenu = "mun" & MenuID '这里怎样写
End Function

解决方案 »

  1.   

    你可以这样.Function OpenMenu(MenuID As Integer)
        Dim objMenu As Menu              '这样写对吧
        set objMenu =Me.Controls("mun" & MenuID)
    End Function
      

  2.   

    Function OpenMenu(MenuID As Integer)
        Dim objMenu As Menu
        set objMenu =Me.Controls("mnu" & MenuID)
    End Function
      

  3.   

    Function OpenMenu(MenuID As Integer)
        Dim objMenu As Menu
        set objMenu =Me.Controls("mnu" & MenuID)
    End Function
    来晚了,我可没有抄袭哦!!!嘿嘿
      

  4.   

    viena(维也纳nn-实心木头人石欠歹匕RUKYO) 
    creazyfish(梳分头的鱼)砍倒
      

  5.   

    为啥砍我呢?我是帮你纠正一个错误,mnu写成mun了,虽然楼主写错在先,但你也不能就照错的写呀
      

  6.   

    这个问题,不就是以前别人问的那个怎么把Command1...Command10等等按钮一起控制的问题一样吗。
    其实就算有解决的方法,这个思路本身就是一个牛角尖。
    只要在制作菜单的时候将这功能相似的一类菜单的NAME设为一样,将INDEX改成不同的数字就可以了。
    其原理就是菜单数组,和控件数组的道理一模一样。
    这个INDEX可是在菜单编辑器上明明白白写着的,可不是什么“VB大揭密”,只要留一下心就能看到的。
    楼主还是照这个办法试试吧。否则要还按着你原来那条思路下去,待会你又要问如何去控制它们的触发事件了。
    而用菜单数组,则只需在 MenuName_Click(byval Index as integer) 事件中
    用一个 Select Case Index 就可以搞定,何乐而不为呢?
    MenuName_Click(byval Index as integer)中这个Index 可不是我加出来的,你先建好菜单数组,再按它就会自动生成的。如果在做成菜单数组前你已经生成了这个代码框架,请先将它删除,再按一下菜单就会生成带Index的代码了。
      

  7.   

    WallesCai(皮厚怎么了,摔跤不疼,冬天不冷,夏天还不怕蚊子呢!)
    说得对,以理帮人,一句代码没写,却让人学到了东西,CSDN人应该这样,支持!
      

  8.   

    viena(维也纳nn-实心木头人石欠歹匕RUKYO) 
    creazyfish(梳分头的鱼)砍倒
    //最近论坛里的有斧头帮出没,请大家务必小心!!!