什么是數(shù)組?
數(shù)組的特性
聲明數(shù)組
給數(shù)組賦值
什么是多維數(shù)組
聲明多維數(shù)組
動(dòng)態(tài)數(shù)組
如何創(chuàng)建數(shù)組?
Array 函數(shù)
Split 函數(shù)
Range 對(duì)象
判斷及清空數(shù)組
數(shù)組的最大最小索引號(hào)
如何將數(shù)組寫(xiě)入單元格
1. 什么是數(shù)組?
數(shù)組就是一個(gè)列表或一組數(shù)據(jù)表
是同類(lèi)型多個(gè)變量的集合
2. 數(shù)組的特性
數(shù)組中的元素共享一個(gè)數(shù)組名
數(shù)組中的元素按順序存儲(chǔ)在數(shù)組中,以索引號(hào)區(qū)分
3. 聲明數(shù)組
Public / Dim 數(shù)組名 (a to b) As 數(shù)據(jù)類(lèi)型
Public 和 Dim 二選一,作用域不同
a 和 b 都是整數(shù),是起始和終止索引號(hào)
如果括號(hào)內(nèi)只使用一個(gè)自然數(shù),則默認(rèn)起始號(hào)是 0
例如,Dim Arr (15) As String,表示數(shù)組元素為 0 到 15
如果只寫(xiě)一個(gè)自然數(shù),又希望從 1 起始,可以在模塊的第一句寫(xiě)入 ''Option Base 1''
4. 給數(shù)組賦值
示例 1:
Sub number ()
Dim arr (1 to 5) As Integer
arr(1) = 1
arr(2) = 2
arr(3) = 3
arr(4) = 4
arr(5) = 5
End Sub
示例 2:
Sub number ()
Dim arr (1 to 5) As Integer, i As Integer
For i = 1 to 5
arr(i) = i
Next
End Sub
5. 什么是多維數(shù)組
多維數(shù)組是包含多個(gè)列表或多組數(shù)據(jù)表的數(shù)組
6. 聲明多維數(shù)組
Public / Dim 數(shù)組名 (a to b, c to d) As 數(shù)據(jù)類(lèi)型
不同維度之間用 “,” 隔開(kāi)
7. 動(dòng)態(tài)數(shù)組
聲明數(shù)組時(shí),如果不確定數(shù)組大小,可以設(shè)置為動(dòng)態(tài)數(shù)組
動(dòng)態(tài)數(shù)組格式為:
Dim 數(shù)組名稱(chēng) ()
需要的時(shí)候,可以用 ReDim 語(yǔ)句指定動(dòng)態(tài)數(shù)組大小
定義動(dòng)態(tài)的數(shù)組首先要聲明,Dim arr(),然后用ReDim命令來(lái)設(shè)置數(shù)組的大小:
ReDim 數(shù)組名稱(chēng) (a to b) As 數(shù)據(jù)類(lèi)型
靜態(tài)數(shù)組同樣可以用 ReDim 命令重新設(shè)置大小
8. 如何創(chuàng)建數(shù)組?
A. Array 函數(shù)
如果用 Array 函數(shù)創(chuàng)建數(shù)組,定義變量時(shí),變量類(lèi)型必須為 Variant 類(lèi)型
數(shù)組索引號(hào)默認(rèn)從 0 開(kāi)始,除非在模塊第一句中寫(xiě)入了''Option Base 1''
示例:
Sub 月份 ()
Dim arr As Variant
arr = Array(1,2,3,4,5,6,7,8,9,10,11,12)
End Sub
B. Split 函數(shù)
Split 把文本字符串按照指定的分隔符分開(kāi),返回一個(gè)一維數(shù)組
無(wú)論是否寫(xiě)入''Option Base 1'',Split 函數(shù)定義的數(shù)組最小索引號(hào)都是 0
示例:
Sub 月份 ()
Dim arr As Variant
arr = Split (''1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月'','','') ''標(biāo)紅的第2個(gè)參數(shù)將分隔符定義為'',''
End Sub
C. Range 對(duì)象
Range 對(duì)象可以把單元格區(qū)域的值賦值給變量
單元格區(qū)域的大小必須與數(shù)組大小相同
示例:
Sub RngArr ()
Dim arr As Variant
arr = Range (''A1:C2'').Value ''將 A1:C2 單元格的值指定給變量 arr
Range (''E1:G2'').Value = arr ''將變量 arr 的值寫(xiě)入 E1:G2 單元格
End Sub
9. 判斷及清空數(shù)組
A. IsArray 函數(shù)
IsArray(variablename)
判斷指定的輸入變量是否是數(shù)組變量
數(shù)返回一個(gè)布爾值
B. Erase 函數(shù)
Erase ArrayName
固定數(shù)值數(shù)組,數(shù)組中的每個(gè)元素重置為零
固定字符串?dāng)?shù)組,數(shù)組中的每個(gè)元素被重置為零長(zhǎng)度 ''''
對(duì)象數(shù)組,數(shù)組中的每個(gè)元素被重置為特殊值 Nothing
10. 數(shù)組的最大最小索引號(hào)
UBound 和 LBound 函數(shù)分別可以計(jì)算數(shù)組的最大和最小索引號(hào)
格式如下:
UBound (arr)
LBound (arr)
11. 如何將數(shù)組寫(xiě)入單元格
使用 Range 對(duì)象
示例:
Sub 月份 ()
Dim arr As Variant
arr = Array(1,2,3,4,5,6,7,8,9,10,11,12)
Range (''A1:A12'').Value = Application.WorksheetFunction.Transpose (arr) '' 數(shù)組寫(xiě)入單元格的時(shí)候,都是橫向按行寫(xiě)入的,如果要豎向按列寫(xiě)入,需要用 Transpose 函數(shù)行列轉(zhuǎn)換一下
End Sub
聯(lián)系客服