一 什么是VBA數(shù)組
數(shù)組可以大大節(jié)省系統(tǒng)運算時間,提高效率。數(shù)組就是儲存一組數(shù)據(jù)的數(shù)據(jù)空間,數(shù)據(jù)類型可以是數(shù)字,可以是文本也可以是對象,也可以是VBA數(shù)組。
二 VBA數(shù)組的存在形態(tài)
VBA數(shù)組是以變量形式存放的一個空間,它也有行有列,也可以是三維空間。
1 常量數(shù)組
array(1,2)
array(array(1,2,3),array("a","b","c"))
2 靜態(tài)數(shù)組
常量數(shù)組是一個教室,已經有四個人坐在教室,靜態(tài)數(shù)組是有一個教室,但是并沒有人坐在教室里。
2.1 單維數(shù)組
x(4) ‘有五個位置,編號從0到4
arr(1 to 10) '有10個位置,編號從1到10
2.2 二維數(shù)組
arr(1 to 10,1 to 2) '十行兩列的空間,總共20個位置,這是二維數(shù)組
2.3 三維數(shù)組
三維數(shù)組應用并不廣泛。
arr(1 to 10,1to 2, 1 to 3) '三維數(shù)組,總共10*2*3 = 60 個位置。
3 動態(tài)數(shù)組
arr() ’不知道有多少行多少列
三 數(shù)組寫入數(shù)據(jù)
1 按編號寫入和讀取
1.1 寫入一維數(shù)組
Sub t1()
Dim x As Integer
Dim arr(1 To 10) ‘十個座位的數(shù)組
For x = 1 To 7
arr(x) = x * 10
Next x
Stop
End Sub
Sub t1()
Dim x As Integer
Dim arr(1 To 10)
For x = 1 To 7
arr(x) = x * 10
Next x
arr(4) = 234
Stop
End Sub
1.2 二維數(shù)組寫入數(shù)據(jù)
Sub t2()
Dim x As Integer, y As Integer
Dim arr(1 To 5, 1 To 4)
For x = 1 To 5
For y = 1 To 4
arr(x, y) = Cells(x, y)
Next y
Next x
Stop
End Sub
2 動態(tài)數(shù)組
寫入分為兩步,第一步聲明一個不固定大小的數(shù)組,第二步在已經知道數(shù)組大小的情況下再重新聲明一下。
Sub t3()
Dim arr()
Dim row
row = Sheets("第二十講").Range("a65536").End(xlUp).row - 1
ReDim arr(1 To row)
For x = 1 To row
arr(x) = Cells(x, 1)
Next x
Stop
End Sub
原始表格圖如下
3 批量寫入
批量寫入可以由常量數(shù)組導入,或者由單元格區(qū)域導入
Sub t4()
Dim arr()
arr = Array(1, 2, 3, "a") ’由常量數(shù)組導入
Stop
End Sub
Sub t5()
Dim arr
arr = Range("a1:a5") ‘由單元格區(qū)域導入
Stop
End Sub