- VBA 教程
- VBA - 首頁
- VBA - 概述
- VBA - Excel 宏
- VBA - Excel 術語
- VBA - 宏註釋
- VBA - 訊息框
- VBA - 輸入框
- VBA - 變數
- VBA - 常量
- VBA - 運算子
- VBA - 決策
- VBA - 迴圈
- VBA - 字串
- VBA - 日期和時間
- VBA - 陣列
- VBA - 函式
- VBA - 子過程
- VBA - 事件
- VBA - 錯誤處理
- VBA - Excel 物件
- VBA - 文字檔案
- VBA - 圖表程式設計
- VBA - 使用者窗體
- VBA 有用資源
- VBA - 快速指南
- VBA - 有用資源
- VBA - 討論
VBA - 陣列
我們非常清楚,變數是用於儲存值的容器。有時,開發人員需要在一個變數中同時儲存多個值。當一系列值儲存在一個變數中時,它被稱為陣列變數。
陣列宣告
陣列的宣告方式與變數的宣告方式相同,只是陣列變數的宣告使用了括號。在下面的示例中,陣列的大小在括號中指定。
'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
一個函式,回收陣列變數的已分配記憶體。 |
