首頁 > 軟體

Excel VBA教程:二維陣列的使用及批量寫入Excel表格

2021-03-12 01:30:17

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二維陣列的基本操作就講到這裡,你學會了沒有?

~如果您喜歡的話,歡迎點贊+關注+留言哦,感謝您的支援!


IT145.com E-mail:sddin#qq.com