Excel VBA程式設計動態陣列

2022-10-17 18:24:37 字數 935 閱讀 5612

在有些情況下,使用者也許不清楚需要多大的陣列,這時就需要用乙個能夠改變大小的陣列,這就是動態陣列。動態陣列可以在任何時候改變大小。在vba中,動態陣列是最靈活、最方便的一種陣列。

利用動態陣列還有助於有效管理記憶體,因為動態陣列是使用時才開闢記憶體空間,在不使用這個陣列時,還可以將記憶體空間釋放給系統。這樣就可以最大限度地節省記憶體,提高執行速度。

建立動態陣列需要2步,第1步和固定長度陣列(靜態陣列)類似,用dim語句(或private、public、static)宣告,但是不要指定維數。如:

dim s() as integer

第2步當用到該陣列時,再用redim語句分配實際的元素個數,這時需要確定元素的個數。如前面宣告的陣列s,可以用下面語句將它定義為乙個二維陣列。

redim s(5,10)

redim語句只能出現在過程中。與dim語句、static語句這些變數宣告語句不同,redim語句是—個可執行語句,redim語句可以改變元素數目以及上下界。在使用redim語句時,其格式和dim語句一樣,即redim語句中的下標可以是常量,也可以是有了確定值的變數,而其型別可以省略,若不省略,則必須與dim中的宣告語句保持一致。

例如,定義乙個動態陣列。

dim a () as single '定義動態陣列a

redim a(30,20) '重新定義陣列a為二維陣列

redim a(50,23) '再次重新定義陣列上下界

每次使用redim語句時,系統會把動態陣列中的數值重新初始化一遍,當前儲存在陣列中的值都會全部丟失。但是如果使用者希望只改變陣列大小,但不丟失陣列中的資料。這時,可以使用帶preserve關鍵字的redim語句。

格式:redim preserve 陣列名([下標下界 to]下標上界) [as 資料型別]

例如,將上例中的陣列a重新定義,但是不改變陣列a中的元素值。

redim preserve a(10,15)

Excel VBA程式設計VBE的組成

vbe必須借助excel或其他office元件才能使用。啟動excel 2007後,單擊 組中的visual basic按鈕,則彈出vbe視窗。其中,在vbe視窗中,主要由工具欄 選單欄和4個視窗組成,以幫助使用者建立和管理應用程式。使用者可以通過單擊工具欄中的按鈕或者執行選單欄中的命令,訪問其功能...

陣列程式設計作業 1

實驗8 陣列程式設計 1 一 實驗目的 1 掌握陣列的定義 引用,以及陣列的輸入和輸出方法 2 掌握字元陣列,以及字元函式的使用 3 學習與陣列相關的常見的演算法,如 查詢 排序等 4 學習與矩陣相關的常見的演算法,如 加 減 乘等。二 實驗預備知識 1 一維陣列 二維陣列 字元陣列。2 與陣列相關...

Excel VBA程式設計典型例項 複製工作表

某校進行了一次考試,考試成績按照學生的學號依次輸入到excel工作簿中。後來學校決定從所有的學生中,抽出考分大於500分的學生,進行一次集中學習,然後去參加省某科的知識競賽。這個過程可使用vba語句,對學生的成績進行判斷,並將大於500分的學生資訊複製到另乙個工作表中。1.練習要點 複製 2 操作步...