當前位置:成語大全網 - 新華字典 - Excel vba有arraylist或者vector嗎

Excel vba有arraylist或者vector嗎

復制粘貼壹下。。。

動態數組:大小不固定的數組

動態數組的聲明方法:和靜態數組不同的時,動態數組需要先用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)

如果數組是多維的,只能動態聲明第末維的,如果需要把讓第壹維不斷擴充,還需要先轉置, 有點麻煩,遇到這種情況,我們可以聲明壹個足夠大的靜態數組來取代動態數組, 運行速度較前者快。