那什麼是VBA的數組呢?
VBA數組可以理解成是儲存的一組數據的一個地方。他的數據類型可以是數字,文本,對象,當然也可以是VBA數組。可能有些同學會覺得比較抽象,但是經過慢慢的學習就不會覺得抽象啦!
或許在你心裡會默默有一句話想問,我為嘛要學習數組呢?這麼抽象的概念?當你聽到他的優點以後,就會不這樣想了。他的優點簡而言之有2點,加快程序執行速度和簡化代碼功能,不要小看這2個作用,當你學習到後面就會發現你花很多精力在VBA對象上面是多麼不明智的選擇。
如下2個例子,可以看到使用數組耗時0.039,而沒有使用數組耗時6秒,數組的運算速度是沒有使用數組的153倍,相信你肯定看到這麼一個小的地方,速度竟然相差這麼多?
這個其實是和VBA的數組運算原理有很大的關系,VBA中的運算最終是在内存中進行的,如果數據已經在内存中,則直接進行運算,但如果數據是儲存在單元格裡則還需要先把數據從單元格裡調入到内存中,然後再在内存中對數據進行運算.
既然已經知道數組的重要性了,那麼你可否知道VBA數組有哪幾個分類?
它可以分為2大類,如下:
按維數劃分:1維、2維…….60維
按儲存類型劃分:靜态數組、動态數組、常量數組
1維數組:橫向排列的一組值。
代碼如下所示,以下為1維數組和2維數組,我們用的最多的就是這2種,所以可以先了解這些。多維數組依次類推而已。
常量數組,arr = Array(1, 2, 3, 4, 5),數組Arr就是一個常數數組,他有5個常數元素,這個比較好理解吧!
靜态數組:顧名思義,就是數組的區域大小是固定不變的,一旦超出這個區域就會提示錯誤。Dim arr(1 To 10, 1 To 2) ,這個就是聲明arr是一個10行2列的二維數組,你明白木有?
動态數組:就是他的區域大小不固定的數組,這個在我們以後的工作中間,用的最多的就是這個動态數組啦!所以這個理解好這個非常重要,動态數組的聲明方法和靜态數組聲明的方法稍有不同,動态數組是需要先用Dim聲明是動态數組,當我們的數組大小一旦被确認了,還需要再次用Redim進行二次聲明。
例01,step-01 Dim arr(),這是先定義為動态數組
Step-02 Redim arr( 第一維數組上标 to 第一維數組下标,第二維上标 to 第二維下标)
舉一個實例來說明吧!如下所示的,看了這個你肯定就明白了上面的那2個步驟了,step-01等同于Dim arr(),step-02等同于ReDim arr(1 To k),就這樣我們完成動态數組的處理。
PS:需要注意的是,如果我們的數組需要随某個變量進行不斷的擴充(減少),那麼數組就需要多次進行聲明,每擴充(減少)一次就聲明一次;另外說一點如果數組是多維的,隻能動态聲明第末維的,如果需要把讓第一維不斷擴充,還需要先轉置,這個處理方法比較麻煩,在我們以後會說到這個的處理方法,在這裡先請熟記上面的知識點。
自此你肯定有疑問了,數據如何放在Excel中間呢?一起來看看,如下圖所示的操作方法,這個例子說明了2個方法,把excel的數據賦值到數組(arr = Range("a2:d5")),把數組賦值到Excel中間(Range("a2:d5") = arr ),相信聰明的你肯定看到了。
現在我們說說的幾個簡單的運算吧!一起來加深對數組的了解。
VBA數組的大小确定,也就是我們說的上标和下标,通俗上說就是開始的位置和結束的位置值。
VBA數組的數據處理之篩選操作,就是在一個數組中間帥選出來我們需要的數據。這個的使用方法很簡單,就是數組= VBA.Filter(要帥選的數組, 帥選條件,是否包含這個),怎麼是不是很好理解?
VBA數組數據處理之拆分與合并
求VBA數組的中間的最值方法
數組的統計與求和
數組的查詢和處理工作
數組的拆分,這個在處理數組的數據時候,經常用到:
怎麼樣,小夥伴們,您學會使用使用Excel VBA數組的基本概念和常用的使用方法了嗎?相信你如果能夠熟知上面的知識點,那麼你對數組就能夠入門了,有不懂的,有疑問的,可以下面進行留言。
如果小夥伴還有其他的想知道或者想了解的,都可以直接先關注我然後在私信我,告訴我們您想知道什麼,或者想了解什麼,我們會根據你的需要進行擴展的,謝謝大家的支持!
如果有不明白的或者不懂的可以在下方留言,我們會一一解答的。
我是Excel教案,關注我持續分享更多的Excel技巧!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!