Excel VBA數組學習(二)

三、利用索引號獲取數組中的元素

類似Range可以使用索引號訪問區域中每一個單元格一樣,一維數組和二維數組也可以使用索引號獲取數組中每一個值。主要有兩種形式:

形式一:Arr(Item)

item 表示使用數組的索引號

形式二:Arr(RowIndex,ColumnIndex)

RowIndex 行號 ColumnIndex列號

這兩種形式看起來在形式上和Range的索引號完全一致,但在事實上存在很多差異。

請看差異在哪裡,

例子1:

Sub 索引號引用數組()

arr1 = Array("HCH", "麥兜", "窗外", "今日") '對數組賦值

MsgBox arr1(1) '正確的引用

MsgBox arr1(1, 1) '錯誤的引用

End Sub

代碼演示如下:

Excel VBA數組學習(二)

在例子1中arr1是屬於一維數組,兩種索引方式只能前者可以正常執行,後者會產生錯誤。

例子2:

Sub 索引號引用數組1()

arr1 = [{1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4}] '對數組賦值

MsgBox arr1(4, 2) '正確的引用

MsgBox arr1(4) '錯誤的引用

End Sub

代碼運行的結果會顯示4,錯誤會彈出警告,與上例一致。

arr1是二維數組,例子2中兩種方式只能使用第二種方式,而後者會產生錯誤。當使用索引號引用數組時候,值得注意是:第一個元素的默認索引值。

在默認狀態下,如果模塊中未指定第一個元素的索引號,那麼默認為0。即數組中arr中的第一個值用arr(0)來表示,最後一個元素的索引號則為數組元素個數減1來表示。

如下例子:

Sub 索引號引用數組()

arr1 = Array("HCH", "麥兜", "窗外", "今日") '對數組賦值

MsgBox arr1(1) '正確的引用

End Sub

該例子顯示的結果是“麥兜”而不是“HCH”。如果不習慣這種默認的索引方式,可以利用option base語句。option base 1:表示數組中第一個元素的索引號為1

option base 語句只能置於模塊的頂部,並且可選值只能為0或1

。因為默認狀態為0,那麼option base 0可以忽略。


分享到:


相關文章: