- 什么是數(shù)組?
- 在Excel里數(shù)組就是一個自由縮放的‘工作表‘,可以自定義決定大?。◣仔袔琢校?。但不能只是一個單元格,因為‘工作表’是單元格集合。
- ‘工作表’用來存儲數(shù)據(jù),數(shù)組同樣用來存儲數(shù)據(jù)。數(shù)組是存放在內(nèi)存當(dāng)中的,在代碼當(dāng)中操作數(shù)組要比操作工作表快很多很多。
- 數(shù)組的的維度
- 數(shù)組一般有一維數(shù)組和二維數(shù)組,當(dāng)然還有三維、四維......但一般只用到二維,其他都用不到,不需要糾結(jié)。
- 數(shù)組的聲明
- 1、數(shù)組的下界如果缺省默認(rèn)從0開始。
Dim arr(2)
- 聲明一個含有3個元素的一維數(shù)組,即arr(0),arr(1),arr(2),這里看到,數(shù)組的起始是默認(rèn)由0開始的。
- 2、聲明數(shù)組的數(shù)據(jù)類型
Dim arr(2) As Integer
- 聲明一個含有3個元素的一維數(shù)組,數(shù)據(jù)類型為整型。如果沒聲明數(shù)據(jù)類型,自然就是Variant類型,和聲明變量一個道理。
- 3、數(shù)組的邊界
Dim arr(1 To 10)
- 聲明一個含有10個元素的一維數(shù)組,數(shù)組的索引從1(下界)開始,上界是10。
Dim arr(1 To 10, 1 To 20)
- 聲明一個10行20列的二維數(shù)組。二維數(shù)組相對于上面的一維數(shù)組,有2個維度,自然每個維度都有各自的邊界。
先看1 to 10,這是二維數(shù)組的第一維,下界是1,上界是10,也就是10行的范圍;
再看1 To 20,這是二維數(shù)組的第二維,下界是1,上界是20,也就是20列的范圍。
這個數(shù)組如果輸出到工作表上,就是一個10行20列大小的單元格區(qū)域(一個微型的‘工作表’)
***
- 4、獲取數(shù)組的上界和下界
- Lbound函數(shù):獲取數(shù)組的下界
- Ubound函數(shù):獲取數(shù)組的上界
Sub 數(shù)組()
Dim ar1(2)
Dim ar2(1 To 5)
Dim ar3(1 To 5, 1 To 10)
a = LBound(ar1)
b = UBound(ar1)
c = LBound(ar2)
d = UBound(ar2)
'二維數(shù)組ar3有2個維度
e = LBound(ar3, 1)'第一個維度的下界
f = UBound(ar3, 1)'第一個維度的上界
g = LBound(ar3, 2)'第二個維度的下界
h = UBound(ar3, 2)'第二個維度的上界
End Sub

- 由上可以知道Lbound和Ubound的寫法是:Lbound(數(shù)組名稱,維度);如果維度是1,可以省略,如e = LBound(ar3, 1)相當(dāng)于e = LBound(ar3),但二維度及以上不能省略。
- 另外注意一維數(shù)組和二維數(shù)組元素的表示方法不同,一維數(shù)組,如ar1(0),ar2(3)....二維數(shù)組,如ar3(1,1),ar3(2,4)這和cells(行,列)表示方法其實是一樣的原理。
- 可以這么認(rèn)為:
- 二維數(shù)組就是一個‘類工作表’,可以當(dāng)成一張工作表操作,數(shù)組中的元素就是單元格。
- 一維數(shù)組,可以認(rèn)為是‘工作表’中的一行或一列,數(shù)組中的元素也就是單元格。但要注意的是:
- 【工作表中的一行或者一列并不是一維數(shù)組,而是二維數(shù)組,這里要記住的是,凡是數(shù)組賦值來源于工作表(單元格區(qū)域)的都是二維數(shù)組,給數(shù)組賦值的時候就會知道。】
***