動態數組:大小不固定的數組
動態數組的聲明方法:和靜態數組不同的時,動態數組需要先用Dim聲明,數組大小得出結果後還需要再用Redim進行二次聲明。
Dim 數組名稱()
Redim 數組名稱( 第壹維數組上標 to 第壹維數組下標,第二維上標 to 第二維下標...)
例:
Sub darr()
Dim arr() '聲明壹個動態的arr數組(不知道它能盛多少數據)
Dim k
k = Application.WorksheetFunction.CountIf(Range("a2:a60"), ">10") '計算大於10的個數
ReDim arr(1 To k) '再次聲明arr的大小,正好盛下k數量的值
For x = 2 To 6
If Cells(x, 1) > 10 Then
m = m + 1
arr(m) = Cells(x, 1) '通過循環把大於10的數字裝入數組
End If
Next x
MsgBox arr(2)
End Sub
如果數組需要隨壹個變量不斷的擴充,數組就需要多次聲明,每擴充壹次就聲明壹次:
Redim Preserve (1 to k)
如果數組是多維的,只能動態聲明第末維的,如果需要把讓第壹維不斷擴充,還需要先轉置, 有點麻煩,遇到這種情況,我們可以聲明壹個足夠大的靜態數組來取代動態數組, 運行速度較前者快。