「VBA」學(xué)習(xí)系列第6篇
自定義函數(shù)是VBA中比較重要的一塊的內(nèi)容,也具有很廣泛的用途,且因主觀能動性較強(qiáng),所以具備無限的創(chuàng)新和想象空間。
基礎(chǔ)形式
自定義函數(shù)是以Function開始,End Function結(jié)束,下面的兩個(gè)簡單例子也介紹自定義函數(shù)最基礎(chǔ)的編寫方法,與上篇介紹的VBA過程的編寫方法非常類似。
可選參數(shù)
我們在Excel中經(jīng)常能遇到有些函數(shù)的輸入?yún)?shù)是不固定的,比如vlookup函數(shù),它既可以輸入4個(gè)參數(shù)調(diào)用,如“=vlookup(A1,B1:F1000,2,0)',也可以輸入3個(gè)參數(shù)調(diào)用,如“=vlookup(A1,B1:F1000,2)'。vlookup的第4個(gè)參數(shù)就是可選參數(shù)。那么在VBA中自定義函數(shù)也支持參數(shù)的可選設(shè)置,用關(guān)鍵字optional定義。
從這個(gè)簡單的例子我們可以看到,如果自定義函數(shù)a的可選參數(shù)b沒有,則默認(rèn)為1,但如果有且將其賦值,則參數(shù)b就等于所賦之值。
不定參數(shù)
Excel函數(shù)中還有參數(shù)個(gè)數(shù)不確定的情況,比如sum函數(shù)。那么在自定義函數(shù)時(shí),我們可以用關(guān)鍵字ParamArray來實(shí)現(xiàn)這個(gè)功能。
上述例子就是一個(gè)簡單sum函數(shù)的寫法。ParamArray a()表示參數(shù)數(shù)組a的元素個(gè)數(shù)不定,可以是1個(gè),也可以是多個(gè)。
自定義函數(shù)的調(diào)用共有2種,第一種是自定義函數(shù)或者過程中調(diào)用,這在上面的介紹已有體現(xiàn),比如剛才介紹的SimpleSum函數(shù),在過程“自定義函數(shù)之不定參數(shù)”中直接調(diào)用。
第二種就是在Excel中像普通函數(shù)一樣調(diào)用。像下圖那樣,可以直接在單元格用公式調(diào)用:
=SimpleSum(A2,A3,A4)
聯(lián)系客服