我們都知道,一個變數是一個儲存值的容器。 有時,開發人員希望一次可以在一個變數中儲存多個值。 當一系列值儲存在單個變數中時,則稱為陣列變數。
陣列宣告的方式與宣告變數相同,只是陣列變數的宣告使用括號。 在下面的例子中,括號裡提到了陣列的大小。參考以下範例 -
'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
個值。通過為每個要分配的值指定一個陣列索引值,將這些值分配給陣列。它可以是一個字串。
新增一個模組並新增以下程式碼 -
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 [Preserve] varname(subscripts) [, 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 | 為陣列變數恢復分配的記憶體。 |