一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

VBA筆記:數(shù)組

 阿白mvo3hep7cv 2020-07-21

1.單維數(shù)組

1.1 聲明數(shù)組

聲明1個1~50的數(shù)組,可以將區(qū)間值寫出來
Dim SZ(1 To 50) As String
也可以用'個數(shù)'來標(biāo)識,比如上述的1 to 50可以用49來替代(0~49的意思,總計(jì)50個數(shù)字)
Dim SZ(49) As String
我們還可以模塊的開始,就設(shè)定好數(shù)組的索引值從1開始(1~50)

Option Base 1Dim SZ(50) As String
1.2 數(shù)組賦值

當(dāng)數(shù)組聲明好了之后,我們可以給數(shù)組賦值
比如,給數(shù)組的第15個元素賦值的方法如下:
SZ(14) = '100'
給一個數(shù)組集體賦值的方式:

Sub ShuZu()     Dim SZ(1 To 10) As Integer, i As Integer    For i = 1 To 10        SZ(i) = i    NextEnd Sub 

2.多維數(shù)組

2.1 二維數(shù)組

VBA還支持 橫向、縱向 同時(shí)存在的列表型數(shù)組,比如,我們聲明一個3*20的數(shù)組
Dim SZ (1 to 3 , 1 to 20)
當(dāng)然,也可以用個數(shù)來表示數(shù)組

Option Base 1Dim SZ(3,20) As String
2.2 三維數(shù)組

假設(shè),有4個高3層、寬5格的貨架,用數(shù)組可以這樣來表示

Option Base 1Dim SZ(4,3,5) As String
2.3 多維數(shù)組的賦值方式

與單維數(shù)組的賦值方式一樣

Sub dwsz() Dim SZ(3,2,4)As String SZ(1,2,3) = 'Max'End Sub

3.動態(tài)數(shù)組

3.1 聲明數(shù)組

當(dāng)無法確定數(shù)組的存儲元素多少時(shí),我們可以先聲明一個空的數(shù)組:
Dim SZ ()
然后,再通過ReDim語句來重新聲明數(shù)組的大小

Sub dtsz()    '定義數(shù)組    Dim arr() As String     Dim n As Long    '統(tǒng)計(jì)A列有多少非空單元格    n = Application.WorksheetFunction.CountA(Range('A:A'))    ReDim arr(1 To n) As String '重新定義數(shù)組的大小    MsgBox nEnd Sub
3.2 數(shù)組賦值
方法1:使用Array函數(shù)

數(shù)組內(nèi),參數(shù)間用英文逗號分隔,參數(shù)支持?jǐn)?shù)字、文本
數(shù)組的索引號默認(rèn)從0開始,除非在模塊中的第1句已經(jīng)寫入了'Option Base 1'語句

Sub ArrayTest() Dim arr As Variant '定義變量時(shí),類型必須為Variant型 '110十個自然數(shù)賦值給數(shù)組arr arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) MsgBox 'arr數(shù)組的第2個元素為' & arr(1)End Sub
方法2:使用Split函數(shù)

數(shù)組內(nèi),參數(shù)間用英文逗號分隔,參數(shù)僅支持文本(需要確認(rèn))

Sub SplitTest()    Dim arr As Variant    arr = Split('Lee,Chen,Zhang,Kong,Feng,Mi', ',')    MsgBox 'arr數(shù)組的第2個元素為:' & arr(1)End Sub

數(shù)組的索引號默認(rèn)從0開始,無論是否已寫入'Option Base 1'語句

方法3:使用Range函數(shù)

可以把一個單元格區(qū)域的值存到數(shù)組里,也可以把數(shù)組里的值寫到單元格里去(單元格區(qū)域的大小必須一致)

Sub RngArr() Dim arr As Variant arr = Range('A1:B2').Value '將A1:B2單元格的內(nèi)容存到數(shù)組arr里 Range('C1:D2').Value = arr '將arr的數(shù)據(jù)寫入到C1:D2單元格里去End Sub

4.數(shù)組的其他操作

4.1 數(shù)組索引(UBound、LBound)

通過UBound和LBound函數(shù),可以計(jì)算數(shù)組的最大、最小索引號
UBound(arr) ‘返回?cái)?shù)組的最大索引號
LBound(arr) ‘返回?cái)?shù)組的最小索引號
UBound(arr) - LBound(arr) +1 ‘返回?cái)?shù)組一共有多少個元素

Sub arrcount()    Dim arr(49)    MsgBox '數(shù)組的最大索引號是:' & UBound(arr) & Chr(13)           & '數(shù)組的最小索引號是:' & LBound(arr) & Chr(13)           & '數(shù)組的元素個數(shù)是:' & UBound(arr) - UBound(arr) + 1End Sub

如果是一個多位數(shù)組,還需要指定數(shù)組的維度,比如:

Sub arrcount2() Dim arr(49, 100) MsgBox '第1維的最大索引是:' & UBound(arr, 1) & Chr(13) & '第2維的最小索引是:' & LBound(arr, 2)End Sub
4.2 數(shù)組拼接(join)

使用join函數(shù),可以將數(shù)組里的所有元素,通過一個指定的拼接符號,拼成一個新的字串

Sub JoinTest()    Dim arr As Variant, txt As String    arr = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)    txt = Join(arr, '~')    '如果省略分割符,則默認(rèn)使用空格作為分割符號    MsgBox txt    '最終輸出結(jié)果:0~1~2~3~4~5~6~7~8~9End Sub
4.3 將數(shù)組寫入單元格(range)

使用range函數(shù),可以將數(shù)組寫入單元格、區(qū)域

Sub ArrToRng() Dim arr As Variant arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) '將數(shù)組的第3個元素寫入單元格A1 Range('A1').Value = arr(3) '將數(shù)組批量寫入單元格(橫向) Range('B1', 'J1').Value = arr '將數(shù)組批量寫入單元格(縱向) Range('A2:A10').Value = Application.WorksheetFunction.Transpose(arr)End Sub

無論1維數(shù)組還是2維數(shù)組,在寫入單元格區(qū)域時(shí),區(qū)域的大小,與數(shù)組的大小需要保持一致

Sub ArrToRng2()    Dim arr(2, 3) As String    arr(1, 1) = 1    arr(1, 2) = 'A'    arr(1, 3) = 'a'    arr(2, 1) = 2    arr(2, 2) = 'B'    arr(2, 3) = 'b'    Range('A1:C2').Value = arrEnd Sub

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    高跟丝袜av在线一区二区三区| 日本黄色录像韩国黄色录像| 国产又猛又黄又粗又爽无遮挡| 熟妇久久人妻中文字幕| 隔壁的日本人妻中文字幕版| 伊人久久青草地综合婷婷| 99久热只有精品视频最新| 黄色国产自拍在线观看| 亚洲欧美日韩中文字幕二欧美| 日韩不卡一区二区三区色图| 又黄又色又爽又免费的视频| 国产免费黄片一区二区| 成人精品一区二区三区综合| 亚洲国产精品av在线观看| 欧美激情区一区二区三区| 日韩三级黄色大片免费观看| 91人妻久久精品一区二区三区| 欧美人妻一区二区三区| 欧美日韩国产午夜福利| 91亚洲国产成人久久| 久热人妻中文字幕一区二区| 国产精品亚洲精品亚洲| 国产肥妇一区二区熟女精品| 丰满人妻少妇精品一区二区三区| 成人亚洲国产精品一区不卡 | 久久香蕉综合网精品视频| 久久大香蕉精品在线观看| 国产日韩欧美综合视频| 亚洲精品国产第一区二区多人| 久久热在线免费视频精品| 日本91在线观看视频| 不卡视频在线一区二区三区| 亚洲国产精品一区二区| 初尝人妻少妇中文字幕在线| 欧洲日韩精品一区二区三区| 中国少妇精品偷拍视频| 中文字幕一区二区熟女| 日韩精品一区二区三区含羞含羞草| 欧美精品激情视频一区| 精品视频一区二区三区不卡| 久久久免费精品人妻一区二区三区|