x1=25
x2="ABC"
for i = 1 to 2
    str5 = "x" + cstr(i)
    debug.pring str5  'str5 想要印出 25与"ABC" 
next 

解决方案 »

  1.   

    改进一下即可:
    x1=25
    x2="ABC"
    for i = 1 to 2    
        debug.pring "x" & Trim(str(i)) '分别打印出 25与"ABC" 
    next 
      

  2.   

    错了:上面的debug.pring 应该是debug.print。
      

  3.   

    或者只改:str5 ="x" & Trim(str(i)) 也可以。
      

  4.   

    Dim i As Integer
    Dim x(2) As Variant
    x(0) = 24
    x(1) = "ABC"
    For i = 0 To 1
     Debug.Print x(i)
    Next这样不就解决问题了吗?
      

  5.   

    那就用集合
    dim x as collection
    set x = new collection
    x.add 24, "x1"
    x.add "ABC", "x2"
    for i=1 to x.count
      debug.print x(i)
    next或者
    debug.print x("x1")
    debug.print x("x2")
      

  6.   

    那就用楼上的方式吧
    看你的提问
    谁能猜到你的变量名是放在数据库中啊
    以后提问说明白一点儿
    不要以为就那一点儿有问题,就提那一点儿你给出的描述,很容易让人理解成,想通过循环来访问一组不同类型的变量
    其实如果你的变量名放在数据库中的话
    那么就更好办了
    你就可以直接读recordset啦
    就读两个字段,一个变量名,一个变量值
    然后循环recordset不就OK了嘛可能你的数据表结构不是这样的
    希望描述清楚一点儿
      

  7.   

    不好意思,向各位道歉,是我搞错了。datou985(^\会急转弯儿的猪/^) 说得对,变量名用在这儿是拼不出来的,打出来是X1、X2,而不是变量的值!!
        撇开其他不谈,这儿行代码理应改为:x1=25
    x2="ABC"
    for i = 1 to 2    
        debug.pring iif(i<2,x1,x2) '分别打印出 25与"ABC" 
    next 
      

  8.   

    如果你是这个意思,那么超过两个时可以用 Choose()
      

  9.   

    问题已经解决啦,使用CllByName语句。
    假设当前窗体名称为frmMain,当前工程为Test。窗体中变量声明如下:(必须声明为窗体级变量,必须为Public作用育)
    public x1 as long
    public x2 as String x1=25
    x2="ABC"软后在工程中增加一个模块,在模块中座如下声明
    Public ThisFrmCls as New Test.frmMain在需要使用中置函数的地方,使用如下代码。
    CallByName ThisFrmCls,"x1",VbGet