2021-05-12 14:32:11
Excel VBA教程:二維陣列的使用及批量寫入Excel表格
Excel VBA中的二維陣列其實是一個由行和列組成的資料表,所以又被稱為表格。二維陣列中的每個成員都是由它的行和列號碼定位決定的。
1.聲明一個二維陣列
Dim 陣列名稱(行數,列數) as 成員類型
二維陣列也是用Dim聲明後接 陣列名稱(行數,列數),這裡的行數和列數就是該陣列能夠儲存的表格資料大小,但是要注意二維陣列的行數和列數同樣是從0開始的,所以二維陣列能夠儲存的大小是行數+1,列數+1.例如:Dim arr(3, 5) As Integer,就是定義了一個可以儲存4行6列資料的二維陣列,陣列成員類型為Integer。如果聲明二維陣列的時候不指定大小,那麼它就是一個動態二維陣列。
2.二維陣列的上標和下標
二維陣列的上標下標和一維陣列有所不同,它分為行的上下標和列的上下標。預設的行下標和列下標都是0,上標是聲明的()中的行數和列數。Dim arr(3, 5)的行上標為3,列上標為5。
3.二維陣列的賦值
需求:將Excel表格中的學生姓名及成績賦值給二維陣列
實現的VBA程式碼如下
Sub ewsz()
Dim arr(8, 3)
For i = 2 To 10
For j = 1 To 4
arr(i - 2, j - 1) = Cells(i, j).Value
Next
Next
End Sub
Dim arr(8, 3)定義一個可以儲存9行4列的二維陣列
for迴圈是遍歷表格資料區域
arr(i - 2, j - 1) = Cells(i, j).Value將遍歷到的單元格的值賦值給二維陣列的成員
4.二維陣列資料寫入Excel表格
需求:把二維數組裡面儲存的資料,寫入Excel表格,從F2單元格開始
增加的VBA程式碼部分如下
For i = 0 To 8
For j = 0 To 3
Cells(i + 2, j + 6) = arr(i, j)
Next
Next
for迴圈是遍歷二維陣列
Cells(i + 2, j + 6) = arr(i, j)將遍歷出來的二維陣列資料賦值給到對應的單元格
看看執行後的效果
二維陣列中的資料已經被寫入到Excel表格中了,完全沒有問題。
除了用巢狀for迴圈遍歷二維陣列然後將每一個數據寫入到對應單元格,我們還可以一次性將二維陣列賦值給到單元格區域,Excel VBA程式碼如下
Cells(2, 6).Resize(9, 4) = arr
Cells(2, 6).Resize(9, 4)就是和arr行列數相同的單元格區域
執行後效果如下
效果和巢狀for迴圈方式一樣,但是程式碼卻簡化了很多,而且這種方式在資料量很大的情況,執行效率也比for迴圈高了不少。
關於Excel VBA二維陣列的基本操作就講到這裡,你學會了沒有?
~如果您喜歡的話,歡迎點贊+關注+留言哦,感謝您的支援!
相關文章