Excel VBA真正的動態數組實例

一、動態數組的定義

動態數組的定義,一開始不需要給數組標明上界和下界。直接定義即可,如下面的代碼:
Dim MyStr() As String
這樣,就定義了一個動態數組及其名稱:MyStr(),現在,該數組的上界下界都是個未知數,也就是說,數組中到底有沒有內容或到底有什麼內容,是個未知數。
因此,要使用動態數組,就必須對其定義好下界和上界。

二、給動態數組確定下界和上界

給動態數組重新確定下界和上界,那麼,分兩種情況。
①保留原值
採用此代碼:ReDim Preserve MyStr(n) 'n爲數組長度
②不保留原值
採用此代碼:ReDim MyStr(n) 'n爲數組長度
③以上兩種情況的實例
下面我們看如上兩種情況的小實例:
比如:
Dim MyStr() As String
ReDim MyStr(2)
MyStr(0)=”1”
MyStr(1)=”2”
現在,這個動態數組有兩個值了,分別是0和1,現在,我們再重新確定該數組的長度。
當然,重新確定自然又有兩種情況了。
A、保留原有數據
ReDim Preserve MyStr(3) '原來長度是2,現在重新確定爲3,並且,保留原有的數據。	
MyStr(2)=”3” '現在,該數組就有三個值了,分別是:MyStr(0)爲1、MyStr(1)爲2、MyStr(2)爲3
B、不保留原有數據
如果我們使用如下代碼:
ReDim MyStr(3)
MyStr(2)=”3”
現在,該數組的長度儘管爲3,但是,裏面卻只有一個數據了,那就是,MyStr(2)的值是3,而MyStr(0)和MyStr(1)裏面,什麼都沒有。
關鍵字:Preserve的作用就的保留原有值,請根據需要加以取捨。

三、動態數組與EXCEL的結合使用實例

Dim n As Integer
n = 0
Dim MyStr() As String
For i = 1 To Sheet1.UsedRange.Rows.Count
	For j = 1 To Sheet1.UsedRange.Columns.Count
		n = n + 1
		ReDim Preserve MyStr(n) '給動態數組重定義一個實際的大小
		MyStr(n - 1) = Sheet1.Cells(i, j).Value '存到動態數組裏去
	Next j
Next i
For Each MyArray In MyStr
	MsgBox "數組的值是" & MyArray
Next
以上代碼的功能是:將Sheet1中已經有數據的單元格區域,通過VBA代碼循環找到每行每列對應的單元格的值,通過對話框顯示出來。
注意哦,數組的使用,其下界都是從0開始的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章