今天和大家要說的是VBA數組的基本知識點,等你學到後面就會知道,數組和字典搭配起來真的是事半功倍的啦!所以學習好數組的基本知識點也是必不可少的,基礎知識有了,才能有後面的應用。
數組的基本概念
數組其實是一組擁有相同元素的的組合。我們可以使用數組名稱和他在數組中的位置來指定某些特定的值。可以擁有很多的值,他們在數組內部是通過引索號進行區分的。其實數組是一個變量的存在,這個概念請好好理解。
聲明數組
我們既然已經初步知道數組了,但是我們知道如何去聲明數組嗎?其實很簡單,如下圖:
以上是我們定義數組的基本方法,當然這個是定義一維數組的方法。但我們如何聲明多維數組呢?如下圖:
上圖就是我們聲明3維數組的方法。
如果我們引用三維數組的某個值,應該怎麼引用?我們可以這樣引用arr(1,1,1)的值。
動態數組
顧名思義,動態數組,就是數組的大小是可以改變的。我們在上面聲明的都是固定大小的數組,但我我們有很多時候,並不知道我們需要使用的數組具體有多大,這個時候我們就要用動態數組了。如下就是我們聲明了一個動態的數組。
動態數組需要注意的一點是,我們需要在代碼中使用這個數組的時候,我們需要用在程序過程中用Redim語句去重新指定數組的大小。其實就是重新定義數組的大小,給他制定一個值。
當然定義動態數組,我們可以使用次數是沒有限制的,即我們可以多次定義動態數組,但是這個時候我們重新定義了,裡面原來儲存的數值就會丟失。如果我們不想原來的數丟失我們需要用Preserve進行數組保存。如下圖:
數組的創建
說了數組的聲明,接著說數組是如何創建的。我們先看看以下幾種數組創建的方法。
代碼寫入:我們可以看到數字已經存放在數組中了。
使用Array創建數組,直接使用常數數組,進行賦值操作。
直接賦值法,如下圖:直接單元格區域的值,賦值給數組
有時候我個人更喜歡直接賦值法得到的數組方式。至於你個人更喜歡哪種,還是要看你自己的,他們的效率其實是差不多的。
數組的上標和下標
我們都知道數組的大小,那麼肯定大家都想知道數組的大小,就是起始點和終點站的大小。請不要黃,我們有方法可以得到這個的大小,他就是我們的UBount和LBound函數。一起看看是如何實現 的吧!
要想知道數組arr的上界是多少,UBound(arr)要想知道數組arr的下界是多少,LBound(arr)
是不是發現其實獲得數組的大小其實非常的容易?
那我們如果想知道某一個動態數組的中的元素個數是多少?應該如何得到呢?
就是用我們的上標減去下標,然後加上1,就是我們數組中的元素個數。也即UBound(arr)- LBound(arr)+1。
寫在最後的兩點是我個人在學習過程中的心得:(1)一維數組寫入單元格區域時,這個單元格必須是水平方向的,也就是一個一行多列的單元格區域,如果想寫入垂直區域,必須使用工作表的Transpose函數轉換一下; (2)和工作表的多單元格數組公式一樣,數組寫入單元格時,單元格的區域必須和數組的大小一致。
以上就是我們今天和大家說的代碼的中的數組,其實VBA代碼學習起來非常簡單,他就是一個腳本語言的存在,他有自己的條條框框,你按照他的遊戲規則來寫代碼就可以。如果有不明白的或者不懂的可以在下方留言,我們會一一解答的。
我是Excel教案,關注我持續分享更多的Excel技巧!