VBA Split用法:1個執行Excel資料剖析的必學函數

VBA Split用法主要應用於文字分割,以程式執行Excel資料剖析。本文除了介紹如何使用這個函數處理換行資料,同時補充陣列和Resize搭配,達到動態自動化的效果。

一、VBA Split用法

程式設計要先確定處理對象的資料型態,才能夠設計相對應的程式。例如這裡將介紹的Split分割文字函數,首先想瞭解它計算結果的資料類型,先設定一個「甲 乙 丙」文字變數,注意到在每個文字之間是有空白的字元,然後使用Split進行分割,範例很單純只有一個參數,但其實這個函數正式是有兩個參數,只是第二個參數可以省略,省略的時候它的預設值為空白,表示以空白分割字串,接著再以VarType瞭解所得到對象的資料形態,從「即時運算」的視窗可以看到是「8200」。

VBA Split用法:1個執行Excel資料剖析的必學函數

二、陣列資料類型

上個步驟「8200」的解釋可以參考微軟關於VarType的說明手冊,依照VBA程式常見慣例,它都是以數字來代表不同類型,同一系列不同類型的屬性值。陣列(「VbArray」)本身的基礎值是「8192」,因為陣列都會是某種既定的資料形態,例如整數或者是文字,因此會在將8192加上陣列資料類型的屬性值,例如說。整數的屬性值是2的話,就是8192+2=8194。呃,上個步驟,8200的意思就是它是文字的。文字。類型的陣列,所以是8192加上文字的屬性值八等於8200。

二、陣列資料類型

三、UBound上界

既然知道了陣列的資料類型,可以使用VBA語言所提供的相關配套工具。例如陣列是複數多資料,想要批次處理多筆資料,首先是要確定到底有多筆,這時很常用到UBound函數,它會傳回陣列的上界,而一般陣列預設從零開始,所以這裡得到的結果是「2」,代表是有012三個陣列個數,於使用公式將三個項目串起來:「B = A(0)+A(1)+A(2)。

三、UbBound上界

四、For Next迴圈

上個步驟是用固定僵化的語法,一行一行程式將陣列元素全部都顯示出來。這麼做有兩個問題,其一,手工輸入一個一個每一個資料,當資料量很大的時候會很會麻煩,其一,更麻煩的是,當資料個數有變動的話就要修改程式碼,容易出錯而且浪費時間。

通常像這種狀況設計流程。既然已經知道了陣列都是從零開始,一直到上界結束,那麼設計一個For Next迴圈,在每次循環的時候將陣列元素的內容組合成一連串的文字就好了,如此達到了資料動態整合的效果,也就是這裡看到的程式。

四、For Next迴圈

五、Excel儲存格換行

接下來要將VBA程式應用在Excel中。範例資料是在一個儲存格裡面有三行文字,這是在資料編輯列先輸入「甲」,Ctrl+Enter組合鍵換行再輸入「乙」,同樣方式再換行,最後輸入「丙」就可以得到跟截圖一樣的資料。

五、Excel儲存格換行

六、vbLf換行符號

上個步驟以Alt加Enter鍵換行的時候,其實是利用特殊的組合鍵在資料編輯列輸入一個隱藏的換行符號,因此所謂的三行「甲乙丙」,其實就是「甲」+換行符號+「乙」+換行符號+「丙」,Excel在呈現資料時會將它換行。

瞭解了這個特性之後,想要利用VBA程式把Excel多行資料進行分割,同樣是使用Split函數,只不過在第2個參數並不是預設可省略的空白,而是以換行符號作為參數值,而在VBA中換行符號是這裡所看到的「vbLf」。因此和先前步驟同樣的程式架構,以Excel儲存格作為分割的對象,在即時運算視窗可以看到同樣是「甲乙丙」。

六、vbLf換行符號

七、ReSize變更範圍

上個步驟是將程式分割的結果列印在及時運算視窗中,但既然是處理Excel資料,當然會希望將結果也輸出到Excel工作表。在此依然是利用陣列的上界屬性達到動態效果,同時使用Resize方法以儲存格B1作為起點,向右延伸陣列元素個數的範圍。例如陣列有3個,就會向右延伸3個儲存格,也就是B1到D1的範圍,那如果陣列個數有4個的話,就會延伸4個範圍,如此達到動態自動伸縮調整的目標。

七、ReSize變更範圍

八、VBA文字處理

執行程式,果然在Excel中將單一儲存格多行資料成功分割成多儲存格系列資料,方便做後續處理。

VBA文字處理:Split與Resize將Excel多行資料分割剖析

Excel VBA自動化的應用

這篇文章範例想要達到的目標看似簡單,把單一儲存格多行資料分割到多個儲存格中,所設計的程式會用到陣列、Split及Resize函數、UBound陣列上界的屬性。這是Excel VBA常常會遇到的狀況,也許簡單的Excel操作要用到一些程式技巧,然而也可以反過來說,只要能夠熟悉這些VBA技巧,很多Excel常見的資料處理都可以用程式自動化方式實現。

微軟說明手冊:Split 函式

延伸閱讀,Excel相關基礎知識:

Excel換行:指令公式如何操作,6種技巧一次學會

最新文章: