2010年10月5日 星期二

Excel:User Defined Functions (UDF) 自定函數

ExcelUser Defined Functions (UDF) 自定函數:

Excel 內置函數的強大、快捷及方便,它大大增強了 Excel 資料計算與分析的能力。不過內置的函數並不一定總是能滿足我們的需求,有時候可以通過定義自己的函數  (User Defined Functions) 來解決問題。自定義函數就是用它創建的。VBA 的全稱是 Visual Basic for Application,它是微軟最好的通用應用程式腳本編程語言,它的特點是容易上手,而且功能非常強大。

例:想抽取在文字及數字合成的字串中的所有數字。1A2B3C4D5E67 = 1234567

  1. 檔案→開新檔案,打開新檔案 (或按 Ctrl+N)
  2. 工具→巨集→Visual Basic編輯器,進入 VBA 編輯器 (或按 Alt+F11)
  3. 選擇功能表命令 插入→點擊模組 (Insert Module)
  4. 複製並貼上 UDF 範例
  5. 函數自定義完成後,檔案→關閉並回到 Microsoft Excel (或按 Alt+Q)
  6. 插入→函數→使用者定義GetValue (或按 Shift+F3 User Defined Category 可見到新建立的函數
▲ 打開新檔案 ( Ctrl+N)
進入 VBA編輯器 ( Alt+F11)
建立新模組  (Insert > Module)
複製並貼上範例
▲ 選擇自定函數 ( Shift+F3)
GetValue 函數
 範例:Function GetValue(text As Variant) As String 
'Returns Number from a text string 
    Dim txt, str As String 
    Dim i As Integer 
'Manipulate a copy of the text string 
    txt = text 
'Initialize str 
    str = "" 
'Get Number element 
For i = 1 To Len(txt) 
        If Asc(Mid(txt, i, 1)) > 47 And Asc(Mid(txt, i, 1)) < 58 Then 
            str = str & Mid(txt, i, 1) 
        End If  
Next i 
'Return Value 
GetValue = str 
End Function

沒有留言:

張貼留言