一,數(shù)組的下標(biāo) 在VBA里,,一個(gè)數(shù)組是有一定的大小和維數(shù)的,,而用來標(biāo)識數(shù)組的這些屬性的數(shù)字,就叫數(shù)組的下標(biāo),一般是用括號括起來,,寫在數(shù)組的右邊 數(shù)組的一般表示方法是: 數(shù)組名稱(下標(biāo)1,,下標(biāo)2,,下標(biāo)3.....) 在這里,,每一個(gè)下標(biāo)表示一個(gè)維度,用逗號分隔,,下標(biāo)個(gè)數(shù)代表數(shù)組維數(shù) VBA數(shù)組最多可以定義60個(gè)維度,,即后面可以跟60個(gè)下標(biāo) 注意:數(shù)組是沒有“上標(biāo)”這個(gè)概念的 每個(gè)下標(biāo),都有一定范圍,,來指示該維度的大小 這個(gè)范圍靠小的那邊,,稱為這個(gè)下標(biāo)的下界(最小下標(biāo));靠大的那邊,,稱為這個(gè)下標(biāo)的上界(最大下標(biāo)) 下標(biāo)的表示方式基本上有兩種: 1. 單個(gè)大于等于0的整數(shù)表示下標(biāo),,這時(shí) 該維的下界(最小下標(biāo)):默認(rèn)為0; 該維的上界(最大下標(biāo)):這個(gè)整數(shù),; 該維的元素的個(gè)數(shù):(這個(gè)整數(shù)+1),; 該數(shù)組元素的個(gè)數(shù)為:各維個(gè)數(shù)的乘積。 arr(4) ——表示這個(gè)數(shù)組只有一維,,下標(biāo)是4,,下界是0,,上界是4,數(shù)組的元素個(gè)數(shù)是5 運(yùn)行以下代碼,,在本地窗口顯示數(shù)組的元素組成(Alt+F11調(diào)出VBE編輯器,,然后在“視圖”菜單中調(diào)出本地窗口) Ubound函數(shù)返回?cái)?shù)組的上界 Lbound函數(shù)返回?cái)?shù)組的下界 Sub aa() Dim arr(4) MsgBox UBound(arr) MsgBox LBound(arr) Stop End Sub arr(1,2) ——表示這個(gè)數(shù)組有兩維,第一維下標(biāo)是1,,下界是0,,上界是1;第二維下標(biāo)是2,,下界是0,,上界是2;該數(shù)組的元素個(gè)數(shù)是(1+1)×(2+1)=6 運(yùn)行以下代碼,,在本地窗口顯示數(shù)組的元素組成(Alt+F11調(diào)出VBE編輯器,,然后在“視圖”菜單中調(diào)出本地窗口) Ubound函數(shù)返回?cái)?shù)組的上界,后面的參數(shù)代表返回第幾維 Lbound函數(shù)返回?cái)?shù)組的下界,后面的參數(shù)代表返回第幾維 Sub bb() Dim arr(1, 2) MsgBox UBound(arr) & "," & UBound(arr, 2) MsgBox LBound(arr) & "," & LBound(arr, 2) Stop End Sub arr(1,0,2) ——表示該數(shù)組有三維,第一維下標(biāo)是1,,下界是0,,上界是1;第二維下標(biāo)是0,,下界是0,,上界是0;第三維下標(biāo)是2,,下界是0,,上界是2;該數(shù)組的元素個(gè)數(shù)是(1+1)×(0+1)×(2+1)=6 運(yùn)行以下代碼,,在本地窗口顯示數(shù)組的元素組成(Alt+F11調(diào)出VBE編輯器,,然后在“視圖”菜單中調(diào)出本地窗口) Ubound函數(shù)返回?cái)?shù)組的上界,后面的參數(shù)代表返回第幾維 Lbound函數(shù)返回?cái)?shù)組的下界,后面的參數(shù)代表返回第幾維 Sub cc() Dim arr(1, 0, 2) MsgBox UBound(arr) & "," & UBound(arr, 2) & "," & UBound(arr, 3) MsgBox LBound(arr) & "," & LBound(arr, 2) & "," & LBound(arr, 3) Stop End Sub 2,以區(qū)間表示下標(biāo),,格式為 :(下界 to 上界),,這時(shí) 該維的下界(最小下標(biāo)):下界; 該維的上界(最大下標(biāo)):上界,; 該維的元素的個(gè)數(shù):上界-下界+1,; 該數(shù)組元素的個(gè)數(shù)為:各維個(gè)數(shù)的乘積。 arr(1 to 3) ——表示這個(gè)數(shù)組只有一維,,下標(biāo)是“1 to 3”,,下界是1,上界是3,,數(shù)組的元素個(gè)數(shù)是(3-1+1)=3 運(yùn)行以下代碼,,在本地窗口顯示數(shù)組的元素組成(Alt+F11調(diào)出VBE編輯器,然后在“視圖”菜單中調(diào)出本地窗口) Ubound函數(shù)返回?cái)?shù)組的上界,后面的參數(shù)代表返回第幾維 Lbound函數(shù)返回?cái)?shù)組的下界,后面的參數(shù)代表返回第幾維 Sub dd() Dim arr(1 To 3) MsgBox UBound(arr) MsgBox LBound(arr) Stop End Sub arr(1 to 3,3 to 4, -1 to 1) —— 表示該數(shù)組有三維,,第一維下標(biāo)是“1 to 3”,,下界是1,,上界是3;第二維下標(biāo)是“3 to 4”,,下界是3,,上界是4;第三維下標(biāo)是“-1 to 1”,,下界是-1,,上界是1; 該數(shù)組的元素個(gè)數(shù)是(3-1+1)×(4-3+1)×(1-(-1)+1)=18 運(yùn)行以下代碼,,在本地窗口顯示數(shù)組的元素組成(Alt+F11調(diào)出VBE編輯器,,然后在“視圖”菜單中調(diào)出本地窗口) Ubound函數(shù)返回?cái)?shù)組的上界,后面的參數(shù)代表返回第幾維 Lbound函數(shù)返回?cái)?shù)組的下界,后面的參數(shù)代表返回第幾維 Sub ee() Dim arr(1 To 3, 3 To 4, -1 To 1) MsgBox UBound(arr) & "," & UBound(arr, 2) & "," & UBound(arr, 3) MsgBox LBound(arr) & "," & LBound(arr, 2) & "," & LBound(arr, 3) Stop End Sub 二,數(shù)組元素的下標(biāo) 數(shù)組的每個(gè)元素,,也分別有自己的下標(biāo),,當(dāng)聲明了一個(gè)固定范圍的數(shù)組后,其每個(gè)元素的下標(biāo)也同時(shí)確定了 元素的下標(biāo)標(biāo)識了元素在數(shù)組中的相對位置,,要知道元素的絕對位置,,必須要知道該維度的下界是多少,然后用下標(biāo)減去下界,,得出該元素在該維度的絕對位置 元素某維度的絕對位置 = 該維度的下標(biāo) - 該維度的下界 + 1 看上面最后一個(gè)例子,,我們隨便抽出一個(gè)元素來看,如arr(3,4,0)這個(gè)元素 3代表他在第一維的絕對位置是3,,因?yàn)榈谝痪S的下界是1,, 4代表第二維的絕對位置是2,因?yàn)榈趦壕S的下界為3,, 0代表第三維的絕對位置為2,,因?yàn)榈谌S的下界是-1 |
|