VBA基礎知識,數據裝入數組的方法,currentregion方法最簡單

眼下"人工智能"是一個非常火的詞,在抖音上,Phython編程也是被各路網培炒得火熱,當然Phython也是有這個實力的.但在Excel裡,在VBA裡,我們依然可以實現很多很"炫酷"的功能.

這一次短圖文,咱們就來說一說VBA裡"數組"的事.當然,咱們說得也比較簡單,僅僅聊一下自己的一點經驗與看法.

1,何謂"數組"?

VBA裡,所謂"數組",咱們可以理解為一種數據陣列,或者叫做數據矩陣,數組一定是成行成列出現的.

在這裡,咱們得多說一點內容,數組是沒有格式的,只有數據,而且,數組只是出現在內存裡的,也正是因為如此,所以,要想通過"數組"的方式進行相關的計算,我們就必須把"數組"裝入內存,然後再根據我們的需要進行計算,計算完成後,再根據我們的需要輸出在工作表裡.

如果實在對數組理解不了的話,我們可以把一個工作表裡的成行成列的數據先姑且看成是數組.總之,數組就是裝入內存裡的成行成列的數據.


VBA基礎知識,數據裝入數組的方法,currentregion方法最簡單


VBA基礎知識,數據裝入數組的方法,currentregion方法最簡單


2.數據裝入內存.

VBA裡,要想使用數組這個方式來處理數據,我們必須先把數據先裝入數組,否則,不可得也!

那麼,如何把數據裝入數組呢?

arr=sheets("數據表").range("a1").CurrentRegion.value

代碼解釋:把名稱為"數據表"的sheet表裡的數據以單元格"A1"為左上角的頂點裝入數組arr裡.使用這種方式是把數據裝入數組的最簡單的方法.當然,這並不是唯一的方法.


VBA基礎知識,數據裝入數組的方法,currentregion方法最簡單


3.數組計算.

在工作表裡,我們所能進行的加減乘除的計算,在數組裡,我們依然可以進行,而且速度更捷一些.對於數組而言,"數組+VBA字典"的方法實現多字段的數據彙總一定是用得最多的.對於VBA使用得多的小夥伴來說,我想下面一段代碼,你一定見過:

xm=year(arr(i,3)) & month(arr(i,3)) & arr(i,4)

d(xm)=d(xm)+arr(i,6)

或者d(xm)=arr(i,6),

或者d(xm)="",

或者d(xm)=d(xm) &arr(i,6).

這一段代碼就是數組與字典結合實現多字段求和的標準表達式.其中xm就是用來計算的字段,在這裡我們可以理解為"計算的標準",即符合以上的條件的行的數據進行求和.而arr(i,6)則告訴我們是對哪一列的數據進行求和.

上述幾種不同的運算公式代表的是不同的需求.第一個是求和;第二個是提取字段所對應的值,已經確定是一個字段僅對應一個;第三個是提取字段,使字段所對應的值為空;第四個是進行字符的連接,一般欲通過字段長度來進行判斷時用此表達式多一些.


VBA基礎知識,數據裝入數組的方法,currentregion方法最簡單


4.數組的輸出.

數組的輸出肯定是根據我們的實際需要來進行輸出的,VBA代碼僅一句即可:

.range("a1").resize(ubound(arr),ubound(arr,2))=arr

說明:ubound(arr)是數組的行數的表達式,ubound(arr,2)是數組的列數的表達式.意思是以當前的工作表的"A1"單元格為頂點,以ubound(arr)為行數,ubound(arr,2)為列數輸出arr內容.

以上內容是個人在數組的應用過程中的一些經驗之談,想學習VBA的朋友可以多瞭解一些,說不定在日後的工作過程用得著.


分享到:


相關文章: