Excel 內置函數的強大、快捷及方便,它大大增強了 Excel 資料計算與分析的能力。不過內置的函數並不一定總是能滿足我們的需求,有時候可以通過定義自己的函數 (User Defined Functions) 來解決問題。自定義函數就是用它創建的。VBA 的全稱是 Visual Basic for Application,它是微軟最好的通用應用程式腳本編程語言,它的特點是容易上手,而且功能非常強大。
例:想抽取在文字及數字合成的字串中的所有數字。1A2B3C4D5E67 = 1234567
- 檔案→開新檔案,打開新檔案 (或按 Ctrl+N)
- 工具→巨集→Visual Basic編輯器,進入 VBA 編輯器 (或按 Alt+F11)
- 選擇功能表命令 插入→點擊模組 (Insert → Module)
- 複製並貼上 UDF 範例
- 函數自定義完成後,檔案→關閉並回到 Microsoft Excel (或按 Alt+Q)
- 插入→函數→使用者定義→GetValue (或按 Shift+F3 在User Defined Category 可見到新建立的函數
▲ 打開新檔案 (按 Ctrl+N) |
▲ 進入 VBA編輯器 (按 Alt+F11) |
▲ 建立新模組 (Insert > Module) |
▲ 複製並貼上範例 |
▲ 選擇自定函數 (按 Shift+F3) |
▲ GetValue 函數 |
'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
沒有留言:
張貼留言