VBA數(shù)組是什么?有何作用?別擔(dān)心,你只需用1分鐘就明白它是什么
VBA數(shù)組是什么?有何作用?別擔(dān)心,你只需用1分鐘就明白它是什么
Hello,大家好,在前面我們說(shuō)過(guò)Excel函數(shù)中間的數(shù)組含義,那么你是否知道VBA中間的兩個(gè)數(shù)據(jù)處理利器字典+數(shù)組呢?他們一旦結(jié)合起來(lái)將會(huì)發(fā)揮無(wú)可估量的作用,提升執(zhí)行效率就在分秒之間。今天我們先說(shuō)說(shuō)數(shù)組,在下期我們會(huì)說(shuō)說(shuō)字典。
那什么是VBA的數(shù)組呢?
VBA數(shù)組可以理解成是儲(chǔ)存的一組數(shù)據(jù)的一個(gè)地方。他的數(shù)據(jù)類(lèi)型可以是數(shù)字,文本,對(duì)象,當(dāng)然也可以是VBA數(shù)組??赡苡行┩瑢W(xué)會(huì)覺(jué)得比較抽象,但是經(jīng)過(guò)慢慢的學(xué)習(xí)就不會(huì)覺(jué)得抽象啦!
或許在你心里會(huì)默默有一句話想問(wèn),我為嘛要學(xué)習(xí)數(shù)組呢?這么抽象的概念?當(dāng)你聽(tīng)到他的優(yōu)點(diǎn)以后,就會(huì)不這樣想了。他的優(yōu)點(diǎn)簡(jiǎn)而言之有2點(diǎn),加快程序執(zhí)行速度和簡(jiǎn)化代碼功能,不要小看這2個(gè)作用,當(dāng)你學(xué)習(xí)到后面就會(huì)發(fā)現(xiàn)你花很多精力在VBA對(duì)象上面是多么不明智的選擇。
如下2個(gè)例子,可以看到使用數(shù)組耗時(shí)0.039,而沒(méi)有使用數(shù)組耗時(shí)6秒,數(shù)組的運(yùn)算速度是沒(méi)有使用數(shù)組的153倍,相信你肯定看到這么一個(gè)小的地方,速度竟然相差這么多?
這個(gè)其實(shí)是和VBA的數(shù)組運(yùn)算原理有很大的關(guān)系,VBA中的運(yùn)算最終是在內(nèi)存中進(jìn)行的,如果數(shù)據(jù)已經(jīng)在內(nèi)存中,則直接進(jìn)行運(yùn)算,但如果數(shù)據(jù)是儲(chǔ)存在單元格里則還需要先把數(shù)據(jù)從單元格里調(diào)入到內(nèi)存中,然后再在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行運(yùn)算.
既然已經(jīng)知道數(shù)組的重要性了,那么你可否知道VBA數(shù)組有哪幾個(gè)分類(lèi)?
它可以分為2大類(lèi),如下:
按維數(shù)劃分: 1維、2維…….60維
按儲(chǔ)存類(lèi)型劃分: 靜態(tài)數(shù)組、動(dòng)態(tài)數(shù)組、常量數(shù)組
1維數(shù)組:橫向排列的一組值。
代碼如下所示,以下為1維數(shù)組和2維數(shù)組,我們用的最多的就是這2種,所以可以先了解這些。多維數(shù)組依次類(lèi)推而已。
常量數(shù)組 ,arr = Array(1, 2, 3, 4, 5),數(shù)組Arr就是一個(gè)常數(shù)數(shù)組,他有5個(gè)常數(shù)元素,這個(gè)比較好理解吧!
靜態(tài)數(shù)組 :顧名思義,就是數(shù)組的區(qū)域大小是固定不變的,一旦超出這個(gè)區(qū)域就會(huì)提示錯(cuò)誤。Dim arr(1 To 10, 1 To 2) ,這個(gè)就是聲明arr是一個(gè)10行2列的二維數(shù)組,你明白木有?
動(dòng)態(tài)數(shù)組 :就是他的區(qū)域大小不固定的數(shù)組,這個(gè)在我們以后的工作中間,用的最多的就是這個(gè)動(dòng)態(tài)數(shù)組啦!所以這個(gè)理解好這個(gè)非常重要,動(dòng)態(tài)數(shù)組的聲明方法和靜態(tài)數(shù)組聲明的方法稍有不同,動(dòng)態(tài)數(shù)組是需要先用Dim聲明是動(dòng)態(tài)數(shù)組,當(dāng)我們的數(shù)組大小一旦被確認(rèn)了,還需要再次用Redim進(jìn)行二次聲明。
例01,step-01 Dim arr(),這是先定義為動(dòng)態(tài)數(shù)組
Step-02 Redim arr( 第一維數(shù)組上標(biāo) to 第一維數(shù)組下標(biāo),第二維上標(biāo) to 第二維下標(biāo))
舉一個(gè)實(shí)例來(lái)說(shuō)明吧!如下所示的,看了這個(gè)你肯定就明白了上面的那2個(gè)步驟了,step-01等同于Dim arr(),step-02等同于ReDim arr(1 To k),就這樣我們完成動(dòng)態(tài)數(shù)組的處理。
PS: 需要注意的是,如果我們的數(shù)組需要隨某個(gè)變量進(jìn)行不斷的擴(kuò)充(減少),那么數(shù)組就需要多次進(jìn)行聲明,每擴(kuò)充(減少)一次就聲明一次; 另外說(shuō)一點(diǎn)如果數(shù)組是多維的,只能動(dòng)態(tài)聲明第末維的,如果需要把讓第一維不斷擴(kuò)充,還需要先轉(zhuǎn)置,這個(gè)處理方法比較麻煩,在我們以后會(huì)說(shuō)到這個(gè)的處理方法,在這里先請(qǐng)熟記上面的知識(shí)點(diǎn)。
自此你肯定有疑問(wèn)了,數(shù)據(jù)如何放在Excel中間呢? 一起來(lái)看看,如下圖所示的操作方法,這個(gè)例子說(shuō)明了2個(gè)方法,把excel的數(shù)據(jù)賦值到數(shù)組(arr = Range("a2:d5")),把數(shù)組賦值到Excel中間(Range("a2:d5") = arr ),相信聰明的你肯定看到了。
現(xiàn)在我們說(shuō)說(shuō)的幾個(gè)簡(jiǎn)單的運(yùn)算吧! 一起來(lái)加深對(duì)數(shù)組的了解。
VBA數(shù)組的大小確定 ,也就是我們說(shuō)的上標(biāo)和下標(biāo),通俗上說(shuō)就是開(kāi)始的位置和結(jié)束的位置值。
VBA數(shù)組的數(shù)據(jù)處理之篩選操作 ,就是在一個(gè)數(shù)組中間帥選出來(lái)我們需要的數(shù)據(jù)。這個(gè)的使用方法很簡(jiǎn)單,就是數(shù)組= VBA.Filter(要帥選的數(shù)組, 帥選條件,是否包含這個(gè)),怎么是不是很好理解?
VBA數(shù)組數(shù)據(jù)處理之拆分與合并
求VBA數(shù)組的中間的最值方法
數(shù)組的統(tǒng)計(jì)與求和
數(shù)組的查詢和處理工作
數(shù)組的拆分,這個(gè)在處理數(shù)組的數(shù)據(jù)時(shí)候,經(jīng)常用到:
怎么樣,小伙伴們,您學(xué)會(huì)使用使用Excel VBA數(shù)組的基本概念和常用的使用方法了嗎?相信你如果能夠熟知上面的知識(shí)點(diǎn),那么你對(duì)數(shù)組就能夠入門(mén)了,有不懂的,有疑問(wèn)的,可以下面進(jìn)行留言。
如果小伙伴還有其他的想知道或者想了解的,都可以直接先關(guān)注我然后在私信我,告訴我們您想知道什么,或者想了解什么,我們會(huì)根據(jù)你的需要進(jìn)行擴(kuò)展的,謝謝大家的支持!
如果有不明白的或者不懂的可以在下方留言,我們會(huì)一一解答的。
我是Excel教案,關(guān)注我持續(xù)分享更多的Excel技巧!
謝謝您的支持,吾將不勝感激
微信掃一掃贊賞作者
贊賞
發(fā)送給作者
人贊賞
長(zhǎng)按二維碼向我轉(zhuǎn)賬
謝謝您的支持,吾將不勝感激
受蘋(píng)果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過(guò)二維碼轉(zhuǎn)賬支持公眾號(hào)。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
