三、利用索引號獲取數組中的元素
類似Range可以使用索引號訪問區域中每一個單元格一樣,一維數組和二維數組也可以使用索引號獲取數組中每一個值。主要有兩種形式:
形式一:Arr(Item)
item 表示使用數組的索引號
形式二:Arr(RowIndex,ColumnIndex)
RowIndex 行號 ColumnIndex列號
這兩種形式看起來在形式上和Range的索引號完全一致,但在事實上存在很多差異。
請看差異在哪裡,
例子1:
Sub 索引號引用數組()
arr1 = Array("HCH", "麥兜", "窗外", "今日") '對數組賦值
MsgBox arr1(1) '正確的引用
MsgBox arr1(1, 1) '錯誤的引用
End Sub
代碼演示如下:
在例子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可以忽略。