VBA陣列的使用方法(轉)
1、宣告陣列。
陣列的宣告方式和其它的變數是一樣的,它可以使用 Dim、Static、Private 或 Public 語句來宣告。標量變數(非陣列)與陣列變數的不同在於通常必須指定陣列的大小。若陣列的大小被指定的話,則它是個固定大小陣列。若程式執行時陣列的大小可以被改變,則它是個動態陣列。
陣列是否從 0 或 1 索引是根據 Option Base 語句的設定。如果 Option Base 沒有指定為 1,則陣列索引從零開始。
(1)宣告固定大小的陣列
下面這行程式碼宣告瞭一個固定大小的陣列,它是個 11 行乘以 11 列的 Integer 陣列:
Dim MyArray(10, 10) As Integer
(2)宣告動態陣列
若宣告為動態陣列,則可以在執行程式碼時去改變陣列大小。可以利用 Static、Dim、Private 或 Public 語句來宣告陣列,並使括號內為為空,如下示例所示。
Dim sngArray() As Single
2、獲得陣列的最大與最小下標。利用LBound 函式與UBound 函式函式可以分別來獲得陣列的最小與最大下標,其語法是:
LBound(arrayname[, dimension])
UBound(arrayname[, dimension])
語法包含下面部分:
部分 描述
arrayname 必需的。陣列變數的名稱,遵循標準的變數命名約定。
dimension 可選的;Variant (Long)。指定返回哪一維的下界。1 表示第一維,2 表示第二維,如此類推。如果省略 dimension,就認為是 1。
3、ReDim 語句。ReDim 語句用來定義或重定義原來已經用帶空圓括號(沒有維數下標)的 Private、Public 或 Dim 語句宣告過的動態陣列的大小,其語法是:
ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]] . . .
ReDim 語句的語法包括以下幾個部分:
部分 描述
Preserve 可選的。關鍵字,當改變原有陣列最末維的大小時,使用此關鍵字可以保持陣列中原來的資料。
varname 必需的。變數的名稱;遵循標準的變數命名約定。
subscripts 必需的。陣列變數的維數;最多可以定義 60 維的多維陣列。subscripts 引數使用下面的語法:
[lower To] upper [,[lower To] upper] . . .
如果不顯式指定 lower,則陣列的下界由 Option Base 語句控制。如果沒有 Option Base 語句則下界為 0。
type 可選的。變數的資料型別;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支援)、Date、String(對變長的字串)、String * length(對定長的字串)、Object、Variant、使用者定義型別或物件型別。所宣告的每個變數都要有一個單獨的 As type 子句。對於包含陣列的 Variant 而言,type 描述的是該陣列的每個元素的型別,不能將此 Variant 改為其它型別。
可以使用 ReDim 語句反覆地改變陣列的元素以及維數的數目,但是不能在將一個陣列定義為某種資料型別之後,再使用 ReDim 將該陣列改為其它資料型別,除非是 Variant 所包含的陣列。如果該陣列確實是包含在某個 Variant 中,且沒有使用 Preserve 關鍵字,則可以使用 As type 子句來改變其元素的型別,但在使用了此關鍵字的情況下,是不允許改變任何資料型別的。
如果使用了 Preserve 關鍵字,就只能重定義陣列最末維的大小,且根本不能改變維數的數目。例如,如果陣列就是一維的,則可以重定義該維的大小,因為它是最末維,也是僅有的一維。不過,如果陣列是二維或更多維時,則只有改變其最末維才能同時仍保留陣列中的內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-955118/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS 字典轉陣列,陣列轉字典iOS陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- js將陣列轉字元,字元轉回陣列JS陣列字元
- 【Java】int[] 陣列 和 Integer陣列的轉換Java陣列
- PHP陣列轉換為js陣列PHP陣列JS
- 輪轉陣列陣列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 二維陣列和稀疏陣列互轉陣列
- List 和 陣列 的轉換陣列
- 翻轉int陣列陣列
- js陣列反轉JS陣列
- 旋轉陣列中的最小元素陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- JavaScript裡的陣列Array使用方法總結,超全的oJavaScript陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- LeetCode 189 旋轉陣列LeetCode陣列
- vue js 物件轉陣列VueJS物件陣列
- 面試最常問的陣列轉樹,樹轉陣列 c++ web框架paozhu實現面試陣列C++Web框架
- Java實現普通二維陣列和稀疏陣列的相互轉換Java陣列
- 陣列和列表的轉換問題陣列
- xml與陣列的相互轉換——phpXML陣列PHP
- json字串 轉換為陣列JSON字串陣列
- 【LeetCode】189. 旋轉陣列LeetCode陣列
- 玩轉陣列各種方法陣列
- JavaScript 字串轉換為陣列JavaScript字串陣列
- PHP 物件轉換成陣列PHP物件陣列
- 陣列轉換成List集合陣列
- LeetCode-189-旋轉陣列LeetCode陣列
- Java中List陣列互轉Java陣列
- LC 189. 旋轉陣列陣列
- php陣列如何轉換為xml的形式?PHP陣列XML
- Javascript - 陣列和陣列的方法JavaScript陣列
- 【VBA】Rangeの行、列、行數、列數を取得
- string與char陣列相互轉換陣列
- 將一個Collection轉為陣列陣列
- JavaScript將陣列轉換為字串JavaScript陣列字串
- Java 中陣列轉換為 ListJava陣列