在類裡定義乙個陣列 VBA中動態陣列的定義及建立

2021-10-11 13:51:37 字數 1130 閱讀 1569

但如果事前不知道陣列大小時,怎麼辦呢?在事前不知道陣列的大小時,可以宣告陣列為動態陣列,在需要指定陣列大小時,再使用redim語句分配陣列的實際元素的個數。

1、動態陣列是可以改變大小的陣列,通過在陣列名稱後附帶空括號來宣告,如:

dim arrsheetname() as string

2、在定義動態陣列之後,必須使用redim來設定動態陣列的上界和下界,為陣列重新分配儲存空間。

3、我們可以使用redim語句反覆地改變陣列的元素個數。

下面我們將通過乙個例項來講解動態陣列的利用:

比如乙個工作表的c列儲存了學生姓名,現在我們需要把把有姓"王"的學生儲存在陣列arr中,預先我們並不知道c列姓王的學生有三十個還是五十個,所以,我們在定義時**可以這樣:

**:sub mynzsz_2()

dim arr() as string

erow = [c65536].end(3).row '最後乙個非空單元格行號

j = 1 '陣列索引號

redim arr(1 to xcount) '重新定義陣列大小,元素共有xcount個

for i = 1 to erow

if left(cells(i, 3).value, 1) = "王" then

arr(j) = cells(i, 3).value '給陣列元素賦值

j = j + 1 '索引號加1

end if

next i

[d1:d65536].clear '清除原有資料

end sub

**截圖:

**的解讀:

1 dim arr() as string 定義了乙個動態陣列。

redim arr(1 to xcount) '重新定義陣列大小,元素共有xcount個

通過求出姓王的學生的個數從而知道陣列的上下界

執行結果:

今日內容回向;

1 什麼是動態陣列?

2 動態陣列和靜態陣列有什麼區別?

在乙個陣列中實現兩個堆疊

初學者難題 1.如何建立這樣的乙個陣列?2.怎樣判斷棧的空滿?include include define error 1e8 typedef int elementtype typedef enum operation typedef enum bool typedef int position ...

在乙個二維陣列中查詢乙個數

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。int juge int matrix,int xlen,int ylen,int key xlen 表示列的數,ylen表示行數 i...

在乙個陣列中找出top K的數

這個基本都是老生常談了,看資料量有多大,建乙個小根堆,或者用快速排序的方法來完成這個題。下面給出快速排序的方法,直接上 了。include include include void quicksort int arr,int low,int high arr i val quicksort arr,...