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