声明固定大小的数组
有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围: 建立公用数组,在模块的声明段用 Public 语句声明数组。
建立模块级数组,在模块的声明段用 Private 语句声明数组。
建立局部数组,在过程中用 Private 语句声明数组。 
设定上下界
声明数组时,在数组名之后跟一个用括号括起来的上界。上界不得超过 Long 数据类型的范围(-2,147,483,648 到 2,147,483,647)。例如,下列数组声明可出现在模块的声明段:Dim Counters (14) As Integer         '15 个元素。
Dim Sums (20) As Double            '21 个元素。为建立公用数组,直接用 Public 取代 Dim。Public Counters (14) As Integer
Public Sums (20) As Double在过程之中同样的声明使用 Dim:Dim Counters (14) As Integer
Dim Sums (20) As Double第一个声明建立了一个有 15 个元素的数组,其索引号从 0 到 14 。第二个声明建立了一个有 21 个元素的数组,其索引号从 0 到 20 。缺省的下界为 0。为了规定下界,用关键字 To 显式提供下界(为 Long 数据类型):Dim Counters (1 To 15) As Integer
Dim Sums (100 To 120) As String在前述声明中,Counters 的索引值范围从 1 到 15,而 Sums 的索引值范围从 100 到 200。包含其它数组的数组
有可能建立 Variant 数据类型数组,并与不同数据类型的数组共居一处。以下代码建立两个数组,一个包含整数,而另一个包含 字符串。然后声明第三个 Variant 数组,并将整数和字符串数组放置其中:Private Sub Command1_Click ()
   Dim intX As Integer   '声明计数器变量。
   '声明并放置整数数组。
   Dim countersA (5) As Integer
      For intX = 0 To 4
         countersA (intX) = 5
      Next intX
   '声明并放置字符串数组。
      Dim countersB (5) As String
         For intX = 0 To 4
            countersB (intX) = "hello"
         Next intX
   Dim arrX (2) As Variant         '声明拥有两个成员的新数组。
      arrX (1) = countersA ()      '将其它数组移居到数组。
      arrX (2) = countersB ()
      MsgBox arrX (1) (2)         '显示每一个数组的成员。
      MsgBox arrX (2) (3)
End Sub多维数组
有时需要追踪记录数组中的相关信息。例如,为了追踪记录计算机屏幕上的每一个像素,需要引用它的 X、Y 坐标。这时应该用多维数组存储值。可用 Visual Basic 声明多维数组。例如,下面的语句声明了一个过程内的 10 × 10 的二维数组。Static MatrixA (9, 9) As Double可用显式下界来声明两个维数或两个维数中的任何一个:Static MatrixA (1 To 10, 1 To 10) As Double可以将所有这些推广到二维以上的数组。例如:Dim MultiD (3, 1 To 10, 1 To 15)这个声明建立了三维数组,大小为 4 × 10 × 15。元素总数为三个维数的乘积,为 600。注意 在增加数组的维数时,数组所占的存储空间会大幅度增加,所以要慎用多维数组。使用 Variant 数组时更要格外小心,因为他们需要更大的存储空间。 
用循环操作数组
可以用 For 循环嵌套有效的处理多维数组。例如,在 MatrixA 中基于每个元素在数组中的位置为其赋值:Dim I As Integer, J As Integer
Static MatrixA(1 To 10, 1 To 10) As Double
For I = 1 To 10
   For J = 1 To 10
      MatrixA (I, J) = I * 10 + J
   Next J
Next I
要创建动态数组,请按照以下步骤执行: (如果希望数组为公用数组,则)用 Public 语句声明数组,或者,(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。 
Dim DynArray ()用 ReDim 语句分配实际的元素个数。 
ReDim DynArray (X + 1)ReDim 语句只能出现在过程中。与 Dim 语句、Static 语句不同,ReDim 语句是一个可执行语句,由于这一语句,应用程序在运行时执行一个操作。ReDim 语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个 ReDim 语句都能改变元素数目以及上下界。但是,数组的维数不能改变。ReDim DynArray (4 to 12)例如,用第一次声明在模块级所建立的动态数组 Matrix1:Dim Matrix1 () As Integer然后,在过程中给数组分配空间:Sub CalcValuesNow ()
   .
   .
   .
   ReDim Matrix1 (19, 29)
End Sub这里的 ReDim 语句给 Matrix 分配一个 20 × 30 的整数矩阵(元素总大小为 600)。还有一个办法,用变量设置动态数组的边界:ReDim Matrix1 (X, Y)注意 您可以将字符串赋值给大小可变的字节数组。一个字节数组也可以被赋值给一个可变长的字符串。一定要注意字符串中的字节数会随平台而变化。同一个字符串在 Unicode 平台上的字节数是它在非 Unicode 平台上的两倍。保留动态数组的内容
每次执行 ReDim 语句时,当前存储在数组中的值都会全部丢失。Visual Basi 重新将数组元素的值置为 Empty(对 Variant 数组)、置为 0(对 Numeric 数组)、置为 零长度字符串(对 String 数组)或者置为 Nothing(对于对象的数组)。在为新数据准备数组,或者要缩减数组大小以节省内存时,这样做是非常有用的。有时希望改变数组大小又不丢失数组中的数据。使用具有 Preserve 关键字的 ReDim 语句就可做到这点。例如,使用 UBound 函数引用上界,使数组扩大、增加一个元素,而现有元素的值并未丢失:ReDim Preserve DynArray (UBound (DynArray) + 1)在用 Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。所以可这样编程:ReDim Preserve Matrix (10, UBound (Matrix, 2) + 1)而不可这样编程:ReDim Preserve Matrix (UBound (Matrix, 1) + 1, 10)

解决方案 »

  1.   

    怎么样,MSDN上的,够全了吧。
      

  2.   

    哇~楼上的,那么复杂?来个简单的:
    dim x(0 to 5) as integer '此来定义一维数组
    dim xx(0 to 5,0 to 5) as integer '此来定义二维数组
    dim i,j as integer '此来定义循环变量
    for i=0 to 5 '此来一维数组的附值,x(0)=0,x(1)=1,x(2)=2... ... x(5)=5
     x(i)=i
    next ifor i=0 to 5 '此来二维数组的附值,x(0,0)=0,x(0,1)=0,x(0,2)=0... ...x(0,5)=0
     for j=0 to 5 '                  x(1,0)=1,x(1,1)=1,x(1,2)=1... ...x(1,5)=1
      x(i,j)=i    '                      .       .        .              .
     next j       '                      .       .        .              .
    next i        '                  x(5,0)=5,x(5,1)=5,x(5,2)=5... ...x(5,5)=5
    您想怎么用就看您自己的了。