EXCEL 中,能否同調用內建函式一樣在工作表中呼叫自已製作的自定義函式,出現對話方塊.同時也能做到像內建函式對話方塊裡的說明?答案是肯定的,下面舉例說明:

題目: ①對文字型一系列數字進行求和(SUM()返回0)   

          ②對數值型的一系列數字異或操作(EXCEL內建函式中沒有XOR())

1. EXCEL中在A,C兩列依次輸入1,2,3,4,5,A列設為數值型,C列設為文字型.

2. 選擇檢視--->工具欄-->VISIUAL BASIC--->VISIUAL BASIC編輯器視窗---->插入--->模組,輸入以下內容

Function myxor(ByVal range As range)
Dim i As Integer, j As Integer
For i = 1 To range.Rows.Count
For j = 1 To range.Columns.Count
myxor = myxor Xor range(i, j)
Next
Next
End Function

Function mysum(ByVal range As range)
Dim i As Integer, j As Integer
mysum = 0
For i = 1 To range.Rows.Count
For j = 1 To range.Columns.Count
mysum = mysum + Val(range(i, j))
Next
Next
End Function

如下圖所示:

3.至此,我們定義了兩個函式,myxor(),mysum()

重回到SHEET1,在單元格A6,輸入"=",選擇 "插入函式"選單,類別中選擇"使用者定義",可以看到我們剛定義的兩個函式顯示在列表框中.如下圖所示:

4.為了在A6 輸入A1~A5的XOR 結果,我們選擇剛定義的myxor 函式,EXCEL 彈出下面對話方塊:

5. 同其他內建函式一樣,選擇RANGE 範圍,如A1~A5,函式被正確計算並插入到A6單元格中.

6. 同理,我們可以利用自定義的函式mysum() 將C列的文字型數字進行求和,賦值到A8 單元格中.

7. 總而言之,利用VBA 編制函式,可以滿足我們某些特定的需要,而計算方法,處理過程,與VB 沒什麼兩樣.