我們都知道,一個變數是一個存儲值的容器。 有時,開發人員希望一次可以在一個變數中保存多個值。 當一系列值存儲在單個變數中時,則稱為數組變數。
數組聲明
數組聲明的方式與聲明變數相同,只是數組變數的聲明使用括弧。 在下面的例子中,括弧裏提到了數組的大小。參考以下示例 -
'Method 1 : Using Dim
Dim arr1() 'Without Size
'Method 2 : Mentioning the Size
Dim arr2(5) 'Declared with size of 5
'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
在上面代碼中,
- 雖然數組大小被指定為
5
,但是當數組索引從零開始時,它可以保持6
個值。 - 數組索引不能是負數。
- VBScript數組可以在數組中存儲任何類型的變數。因此,一個數組可以在一個數組變數中存儲一個整數,字串或字元。
賦值給數組
通過為每個要分配的值指定一個數組索引值,將這些值分配給數組。它可以是一個字串。
例子
添加一個模組並添加以下代碼 -
Private Sub Constant_demo_Click()
Dim arr(5)
arr(0) = "1" 'Number as String
arr(1) = "VBScript" 'String
arr(2) = 100 'Number
arr(3) = 2.45 'Decimal Number
arr(4) = #10/07/2013# 'Date
arr(5) = #12.45 PM# 'Time
msgbox("Value stored in Array index 0 : " & arr(0))
msgbox("Value stored in Array index 1 : " & arr(1))
msgbox("Value stored in Array index 2 : " & arr(2))
msgbox("Value stored in Array index 3 : " & arr(3))
msgbox("Value stored in Array index 4 : " & arr(4))
msgbox("Value stored in Array index 5 : " & arr(5))
End Sub
當執行上面的函數時,它會產生下麵的輸出。
Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM
多維數組
數組不僅限於一個維度,但它們最多可以有60
個維度。 二維數組是最常用的數組。
例子
在下面的例子中,一個多維數組被聲明為3
行4
列。
Private Sub Constant_demo_Click()
Dim arr(2,3) as Variant ' Which has 3 rows and 4 columns
arr(0,0) = "Apple"
arr(0,1) = "Orange"
arr(0,2) = "Grapes"
arr(0,3) = "pineapple"
arr(1,0) = "cucumber"
arr(1,1) = "beans"
arr(1,2) = "carrot"
arr(1,3) = "tomato"
arr(2,0) = "potato"
arr(2,1) = "sandwitch"
arr(2,2) = "coffee"
arr(2,3) = "nuts"
msgbox("Value in Array index 0,1 : " & arr(0,1))
msgbox("Value in Array index 2,2 : " & arr(2,2))
End Sub
當執行上面的函數時,它會產生下麵的輸出。
Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee
ReDim語句
ReDim
語句用於聲明動態數組變數並分配或重新分配存儲空間。
ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
參數說明
- Preserve - 一個可選參數,用於在更改最後一個維度的大小時保留現有數組中的數據。
- Varname - 必需的參數,表示變數的名稱,應遵循標準變數命名約定。
- Subscripts - 必需的參數,表示數組的大小。
例子
在下面的例子中,數組已經被重新定義,當數組的現有大小發生改變時,這些值被保存下來。
注意 - 調整數組的大小時,刪除的元素中的數據將丟失。
Private Sub Constant_demo_Click()
Dim a() as variant
i = 0
redim a(5)
a(0) = "XYZ"
a(1) = 41.25
a(2) = 22
REDIM PRESERVE a(7)
For i = 3 to 7
a(i) = i
Next
'to Fetch the output
For i = 0 to ubound(a)
Msgbox a(i)
Next
End Sub
當執行上面的函數時,它會產生下麵的輸出。
XYZ
41.25
22
3
4
5
6
7
數組方法
VBScript中有各種內置函數,可以幫助開發人員有效地處理數組。 下麵列出了與數組一起使用的所有方法。請點擊方法名稱來詳細瞭解它們如何應用。
編號 | 方法 | 描述 |
---|---|---|
1 | LBound | 它返回一個整數,對應於給定數組的最小下標。 |
2 | UBound | 它返回一個整數,對應於給定數組的最大下標。 |
3 | Split | 它返回一個包含指定數量值的數組。根據分隔符號分割。 |
4 | Join | 它返回一個包含數組中指定數量的子串的字串。這是Split 方法的一個完全相反的功能。 |
5 | Filter | 它返回一個基於零的數組,該數組包含基於特定過濾條件的字串數組的子集。 |
6 | IsArray | 它返回一個布爾值,表示輸入變數是否是一個數組。 |
7 | Erase | 為數組變數恢復分配的記憶體。 |
上一篇:
VBA日期時間函數
下一篇:
VBA用戶自定義函數