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開始的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM