Excel VBA教程 0005

數組

1、數組

數組是具有相同數據類型並且共享同一個名字的一組變量的集合。數組中的元素是按照一定順序排序的,每個元素用索引序號加以區分。定義數組的語法如下:

Dim MyAray(10, 10) A Integer

上面這行代碼聲明瞭一個固定大小的數組,它是個11行乘以11列的二維Integer型數組。如果數組的聲明中只使用一個數字,例如Dim myAray(10) As Integer那麼這樣數組被稱為一維數組。

用Dim語句聲明的數組為系統提供了以下信息:數組名、數組類型、數組維數和各維的大小。

由於數組結構的特點,在程序中數組總是與循環語句配合使用。

備註:數組元素默認的序號是從0開始。數組是從0或從1索引是根據Option Base語句的設置。如果Option Base沒有指定為1,則數組索引從零開始。

若聲明數組為動態數組,則可以在執行代碼時改變數組大小。可以利用Static Dim、Privite或Public語句來聲明數組,並使括號內為空,如以下聲明所示:

Dim sngArmay() As Single

可以在過程中使用ReDim 語句來對數組重新聲明。在過程中,每當需要時,可以使用ReDim語句去更改動態數組。然而當執行這個語句時,數組中存在的值會丟失。若要保存數組中原先的值,則可以使用ReDim Preserve語句來擴充數組。例如,下列的語句將varArray 數縱擴充了10 個元素,而原本數組中的當前值井沒有消失掉。

RaDim Preserve sngAmay(UBound(varAmay) + 10)

備註:UBound函數和LBound函數分別用來查找數組的最大下標(上界)和最小下標(下界).

3、ExcelVBA中使用數組的問題

與Ofice其他應用程序中的VBA相比或者與其他程序設計語言相比,Excel VBA應用程序開發中使用數組較少,這有些令人奇怪。其實,這是由於Excel本身特點決定的。Excel 工作表本身實際上就可以看成是一個數組,一張工作表就是一個二維數組。在Excel中數據是保存在工作表中,而其他應用程序沒有這樣的結構。另外,由於Excel本身具有排序、篩選以及許多統計函數,這就十分簡單地實現了在其他程序中必須使用數組來完成的排序、篩選和很多統計工作。由於Excel的這種特點,所以一個Excel的單元格區城,無需循環就可以與數組接進行數據交換,使用起來十分方便。

而在其他程序設計語言中,對於處理具有相同數據類型的成批數據,則必須使用數組。

Excel VBA教程 0005


分享到:


相關文章: