ReDim 陳述式

宣告動態陣列變數,並在程序層級配置或重新配置儲存空間。

語法

ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

引數:

  • Preserve:當您變更最後一個維度的大小時,保留現有陣列中的資料。

  • Varname:變數的名稱;遵循標準變數命名慣例。

  • Subscripts:陣列變數的維度。

備註

ReDim 陳述式可用來調整或重新調整動態陣列的大小,該陣列必須已使用 Private、Public 或 Dim 陳述式並搭配空括號 (不含維度下標) 來正式宣告。您可以重複使用 ReDim 陳述式來變更陣列中的元素和維度數。

如果您使用 Preserve 關鍵字,則只能調整最後一個陣列維度的大小,且完全無法變更維度數。例如,如果您的陣列只有一個維度,則可以調整該維度的大小,因為它是最後一個,也是唯一的維度。不過,如果您的陣列有兩個以上的維度,則只能變更最後一個維度的大小,且仍會保留陣列的內容。

下列範例顯示如何增加動態陣列最後一個維度的大小,而不清除陣列中包含的任何現有資料。

範例 1:基本 ReDim 用法 (無 Preserve)

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements
ReDim arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
'If you try to access indexes 0, 1, 2 there will be no values.
' The previous values are lost because we did not use Preserve
arr(3) = "Date"
arr(4) = "Elderberry"

範例 2:使用 ReDim Preserve 保留現有資料

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements, keeping the existing data
ReDim Preserve arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
' The previous values are preserved, so we can add more elements
arr(3) = "Date"
arr(4) = "Elderberry"

注意:如果您縮小陣列,則會遺失被排除元素中的資料。

初始化變數時,數值變數會初始化為 0,字串變數會初始化為長度為零的字串 ("")。您必須先使用 Set 陳述式將現有物件指派給參照物件的變數,才能使用該變數。在被指派物件之前,宣告的物件變數具有特殊值 Nothing。