Select Case Right(Sender.Name, Len(Sender.Name) - 4)
            Case 1 : KPanRJNow = KF1.KPanRJ1
            Case 2 : KPanRJNow = KF1.KPanRJ2
            Case 3 : KPanRJNow = KF1.KPanRJ3
        End Select上面的代码是根据Right(Sender.Name, Len(Sender.Name) - 4)来判断 KPanRJNow 要代换哪个 KF1.KPanRJ
但是这样写太多了,
太不够科学了,
如果Right(Sender.Name, Len(Sender.Name) - 4)是从1到10000,
那么就要有10000行代码有没有什么好的方法可以做到让代码更加简短吗?

解决方案 »

  1.   

    我用 KPanRJNow = "KF1.KPanRJ" & Right(Sender.Name, Len(Sender.Name) - 4) 不行
    类型不一样
      

  2.   

    前期把 KF1.KPanRJ1; KF1.KPanRJ2; KF1.KPanRJ3转换为数组KPanRJ(1),KPanRJ(2),KPanRJ(3)……KPanRJNow = KF1.KPanRJ(VAL(Right(Sender.Name, Len(Sender.Name) - 4))
      

  3.   

    用数组
    来个循环FOR NEXT.....
      

  4.   

    代码如何写呀?
    for i=1 to 10000
        '这里的代码我不知道怎么写呀,
        '写成 KPanRJNow=KPanRJ & i 又不行,KPanRJNow="KPanRJ" & i也不行。
        KPanRJNow.text="这是第 " & i & " 个容器!"
    next
      

  5.   

    可不可以用 KPanRJNow.name="KPanRJ" & i
    再加上一个转换的代码就能用KPanRJNow取代KPanRJ1....
    我不知道写代码
    麻烦各位 高手帮个忙。
      

  6.   

    就像这个
    怎样把字符转化成控件名字?
    http://tieba.baidu.com/f?kz=275660619
      

  7.   

    把KF1.KPanRH1定义成数组,然后用下面代码就行了。
    for i=1 to 10000
        if i=Right(Sender.Name, Len(Sender.Name) - 4) then KPanRJNow = KF1.KPanRJ(i)
    next i
      

  8.   


    KF1.KPanRJ(1)不是合法控件名。
      

  9.   

    谢谢各位大哥小弟找到解决问题的办法了KPanRJNow = KF1.Controls.Find("KPanRJ" & Right(KLDH.Name, Len(KLDH.Name) - 4), True)(0)