电竞比分网-中国电竞赛事及体育赛事平台

分享

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

 滿泉ca85upjdlw 2019-04-16

大家好,我們今日繼續(xù)講解VBA代碼解決方案的第111講內(nèi)容:VBA數(shù)組的深入講解,如何創(chuàng)建VBA數(shù)組及數(shù)組大小的判斷。

一、創(chuàng)建數(shù)組的必要方法:

1、使用Array創(chuàng)建數(shù)組,看以下代碼:

Sub Mynz_sz1()

Dim arr()

arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) '將1到10十個(gè)自然數(shù)賦給數(shù)組arr

[a1].Resize(1, 10) = arr '將數(shù)組的值輸入單元格,注意這里沒有用轉(zhuǎn)置函數(shù)

End Sub

代碼窗口

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

運(yùn)行:

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

特別注意點(diǎn)1:使用Array創(chuàng)建的數(shù)組索引號(hào)默認(rèn)從0開始,當(dāng)然,如果已經(jīng)用'OPTION BASE 1'語句指定了的另當(dāng)別論。

特別注意點(diǎn)2:如果賦的值是文本,那需要用英文引號(hào)引起來,如:

代碼: arr = Array('張一', '徐一', '陳一', '王一')

2、使用Split創(chuàng)建數(shù)組

Split的作用是把一個(gè)文本,根據(jù)指定的分隔符,建立一個(gè)數(shù)組。感覺就有點(diǎn)像我們EXCEL中的基礎(chǔ)操作中的'分列'。不同的是'分列'操作是將一個(gè)單元格的文本按指定的分隔符分開,存放在同行的多個(gè)單元格里,而Split的作用是將一個(gè)文本(也可以是存放在單元格里的)按指定的分隔符分開,存放在一個(gè)數(shù)組變量里。

arr = Split('張一,徐一,陳一,王一,許一,張二,陳二,張三,徐二,張四', ',')

特別注意點(diǎn)3:用Split把文本轉(zhuǎn)換成數(shù)組,索引號(hào)總是從0開始。不管你是否使用了Option Base語句,這點(diǎn)和Array不同。

3、通過Range賦值創(chuàng)建數(shù)組

(1)循環(huán)給單元格賦值

比如想把A1:A100單元格的值給數(shù)組arr,則代碼為:

Sub Mynz_sz2()

Dim arr(1 To 29)

For i = 1 To 29

arr(i) = Cells(i, 1)

Next

[d1].Resize(29, 1) = Application.WorksheetFunction.Transpose(arr)

End Sub

代碼窗口:

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

運(yùn)行:

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

(2)直接等于單元格區(qū)域。這個(gè)很簡(jiǎn)單,直接數(shù)組名等于單元格區(qū)域就可以了。比如想把A1:A100單元格的值給數(shù)組arr,代碼還可以簡(jiǎn)單寫為:

代碼:

arr = [a1:a100]

二 數(shù)組大小的判斷方法:UBound和LBound函數(shù)

我們定義數(shù)組時(shí),我們可以指定數(shù)組的起始索引號(hào)不為0,而為1或其他的任意數(shù)。比如Dim arr(5 to 6)定義的這個(gè)數(shù)組起始索引號(hào)為5,共有兩個(gè)元素。

那么,對(duì)于一個(gè)已經(jīng)定義了的數(shù)組,我們想知道它的最大索引號(hào)(上界)和最小索引號(hào)(下界)是多少,怎么辦呢?別慌,用UBound和LBound兩個(gè)函數(shù)就可以了。

如,要想知道數(shù)組arr的上界是多少,則:UBound(arr);要想知道數(shù)組arr的下界是多少,則:LBound(arr)。想知道數(shù)組有多少個(gè)元素,則:UBound(arr)- LBound(arr)+1

如代碼:

Sub Mynz_sz3()

Dim arr(10 To 50)

Dim brr(1 To 10, 1 To 100)

MsgBox '第一個(gè)一維數(shù)組數(shù)組的上標(biāo)是:' & UBound(arr) & Chr(13) _

& '數(shù)組的下標(biāo)是:' & LBound(arr) & Chr(13) _

& '數(shù)組的元素個(gè)數(shù)是:' & UBound(arr) - LBound(arr) + 1 & Chr(13) _

& '第二個(gè)兩維數(shù)組第一維的上界是:' & UBound(brr, 1) & Chr(13) _

& '第二維的上界是:' & UBound(brr, 2)

End Sub

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

運(yùn)行后:

VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷

今日內(nèi)容回向:

1 如何創(chuàng)建數(shù)組?

2 數(shù)組的大小如何判斷

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多