大家好,这是我编的一个小程序,但是不知道怎么老是提示数组越界,不知道为什么,请大家指点。
Sub tt()
Dim myarray As Variant
myarray = Range("A:A").Value
For i = 1 To 50
    Debug.Print myarray(i)
Next i
End Sub

解决方案 »

  1.   

    你的 myarray 定义的本来不是数组,只是一个变体类型变量,
    你当数组来用肯定会出错定义数组的语法:
    dim 变量名() as 数据类型如:
    din aa() as string
      

  2.   

    尽管 Variant 类型可以将一个组数赋给他,但你的这句myarray = Range("A:A").Value只是将一个值(这个值可能是串,也可能是数值或其他,但肯定不是数组)赋予它,当然不能用数组的方式来访问了。
    如果没分析错,Range是引用的Excel中的Range吧,如果是这样,为什么不直接使用它呢?用cells(r,c)就行了。
      

  3.   

    一个很奇怪的问题是当我把程序改成如下这样的话,程序就能运行了,是不是range(“A:A”)传递的是一个二维数组呢?
    Sub tt()
    Dim myarray As Variant
    myarray = Range("A:A").Value
    For i = 1 To 50
        Debug.Print myarray(i,1)
    Next i
    End Sub 
    黄色为修改之处。
    谢谢,期待解答。
      

  4.   

    Range("A:A") 是矩形的单元阵列,二维。