創(chuàng)建自己的EXCEL函數(shù)
Excel的強(qiáng)大函數(shù)功能,為我們帶來了極大方便,雖然它有200多個(gè)函數(shù),但有時(shí)我們?yōu)閷?shí)現(xiàn)一項(xiàng)規(guī)定的功能,可能用到幾個(gè)函數(shù)或者采用嵌套函數(shù),這樣應(yīng)用起來,也不太方便。其實(shí)對于我們經(jīng)常用到的功能,我們可以創(chuàng)建自定義函數(shù)UDF(User—defined function),它的運(yùn)行與Excel中自帶的函數(shù)完全相同。建立自定義函數(shù)有以下幾個(gè)優(yōu)點(diǎn):建立自己特殊的功能和名稱的函數(shù);能將復(fù)雜的、嵌套的、多個(gè)原有的函數(shù)組合在一起,發(fā)揮更大的威力。
比如現(xiàn)在我們要根據(jù)收入來計(jì)算個(gè)人收入調(diào)節(jié)稅,按照規(guī)定每月收入減去800元基礎(chǔ)后,除去養(yǎng)老保險(xiǎn)金、失業(yè)保險(xiǎn)金、醫(yī)療保險(xiǎn)金、住房公積金、工會費(fèi),對剩下的余額征收個(gè)稅。余額在500元內(nèi)的征收余額的5%,余額為500~2000元的征收余額的10%,余額為2000~5000元的征收余額的15%……征收個(gè)稅的最高稅率為45%(余額在10萬元以上的)。如果用Excel的函數(shù),則要進(jìn)行多層if嵌套,稍有不注意,可能造成計(jì)算上差錯(cuò),我們建立自己的函數(shù)來解決這個(gè)問題。
首先進(jìn)入Excel,在[工具]→[宏]→[Visul Basic編輯器](也可按組合鍵[Alt+F11]),在“Visul Basic編輯器”中選擇[插入]→[添加模塊],在代碼窗口輸入下列函數(shù):
圖1添加自制函數(shù)說明
Function tax(income As Single) As Single
Select Case income
Case 0 To 800
tax = 0
Case 800.01 To 1300
tax = (income - 800) * 0.05
Case 1300.01 To 2800
tax = (income - 1300) * 0.1 + 25
Case 2800.01 To 5800
tax = (income - 2800) * 0.15 + 175
Case 5800.01 To 20800
tax = (income - 5800) * 0.2 + 625
Case 20800.01 To 40800
tax = (income - 20800) * 0.25 + 3625
Case 40800.01 To 60800
tax = (income - 40800) * 0.3 + 8625
Case 60800.01 To 80800
tax = (income - 60800) * 0.35 + 14625
Case 80800.01 To 100800
tax = (income - 80800) * 0.4 + 21625
Case Is >= 100800
tax = (income - 100800) * 0.45 + 29625
Case Is < 0
MsgBox "你的工資" && income && "輸入有誤"
End Select
End Function
我們知道,Excel中函數(shù)都有一個(gè)說明,幫助使用,我們也要給這個(gè)函數(shù)添加一個(gè)說明。在工具欄中選擇“對象瀏覽器”(如圖1),選擇我們所做Tax模塊,在其[右鍵]→[屬性]中添加關(guān)于對這個(gè)函數(shù)的描述,這個(gè)描述將出現(xiàn)在Excel中關(guān)于函數(shù)的說明中,如果你要對軟件保密的話,在“模塊”上按右鍵,[VBAproject屬性]→[保護(hù)中設(shè)置密碼],嘿嘿!別人就看不到你的源程序了。
圖2使用自制函數(shù)
這時(shí),退出,回到Excel界面,將這個(gè)文件另存為:類型為“Microsoft Excel加載宏”,在Excel 2000中,它會自動(dòng)更改保存位置為c:\windows\application data\microsoft\addins(系統(tǒng)裝在c:\windows),當(dāng)然,你也可以把這個(gè)文件tax.xla,直接復(fù)制到office\library(office的安裝路徑下),而在Excel 97中只能放在后一個(gè)位置。使用函數(shù)很簡單,點(diǎn)擊[工具]→[加載宏],在你創(chuàng)建的Tax前打個(gè)勾,在單元格直接輸入“=tax()”,是不是像Microsoft office提供的函數(shù)一樣(如圖2),很有點(diǎn)專業(yè)味道。
圖3我的函數(shù)好像不夠?qū)I(yè)
假如你把調(diào)用這個(gè)宏的Excel文件拷貝到別的機(jī)子上運(yùn)行,會出現(xiàn)“當(dāng)前所要打開的文檔含有其他文檔的鏈接,是否要使用其他工作簿中的改動(dòng)更新當(dāng)前工作簿”的提示,可以顯示原先計(jì)算的數(shù)據(jù),這是因?yàn)樵贓xcel中的[工具]→[選項(xiàng)]→[重新計(jì)算]中,一般選中“保存外部鏈接數(shù)據(jù)”,但你不能重新計(jì)算,因?yàn)椴荒苕溄舆@個(gè)宏,別人機(jī)子上根本就沒有這個(gè)函數(shù)。
圖4添加中文描述
只不過在“加載宏”時(shí),我自己創(chuàng)建的函數(shù),是一個(gè)英文標(biāo)題,而且下面也沒有說明(如圖3),你是不是覺得有點(diǎn)不夠?qū)I(yè)。跟我來,再教你一招,如果你使用的是Excel 2000時(shí),找到tax.xla,點(diǎn)擊[右鍵]→[屬性]→[摘要] (如圖4),在描述里添加所需內(nèi)容來對函數(shù)進(jìn)行相關(guān)描述,其中“標(biāo)題”部分將出現(xiàn)在“加載宏”的方框中,“備注”部分將出現(xiàn)在下面的函數(shù)說明部分。這時(shí)再看看,夠不夠?qū)I(yè)。在Excel 97中也可以在其右鍵屬性中作相應(yīng)更改。
Case 2800.01 To 5800
tax = (income - 2800) * 0.15 + 175
Case 5800.01 To 20800
tax = (income - 5800) * 0.2 + 625
Case 20800.01 To 40800
tax = (income - 20800) * 0.25 + 3625
Case 40800.01 To 60800
tax = (income - 40800) * 0.3 + 8625
Case 60800.01 To 80800
tax = (income - 60800) * 0.35 + 14625
Case 80800.01 To 100800
tax = (income - 80800) * 0.4 + 21625
Case Is >= 100800
tax = (income - 100800) * 0.45 + 29625
Case Is < 0
MsgBox "你的工資" & income & "輸入有誤"
End Select
End Function
我們知道,Excel中函數(shù)都有一個(gè)說明,幫助使用,我們也要給這個(gè)函數(shù)添加一個(gè)說明。在工具欄中選擇“對象瀏覽器”(如圖1),選擇我們所做Tax模塊,在其[右鍵]→[屬性]中添加關(guān)于對這個(gè)函數(shù)的描述,這個(gè)描述將出現(xiàn)在Excel中關(guān)于函數(shù)的說明中,如果你要對軟件
(責(zé)任編輯:admin)
- ·Excel VBA編輯語句集300條
- ·【技巧】excel文件破解密碼
- ·【Excel VBA】FileDialog 用法之 打開
- ·VBA修改ACCESS及EXCEL安全設(shè)置(源碼)
- ·實(shí)用的GET函數(shù)
- ·日期改為顯示星期幾的自定義涵數(shù)
- ·VBA在Excel 2000中的應(yīng)用一例
- ·ActiveX在Excel中的運(yùn)用
- ·檢查重復(fù)字段值的方法
- ·Excel中 BASIC 程序的運(yùn)行
- ·Excel XP中圖片的智能刷新
- ·Excel成績分析處理程序
- ·創(chuàng)建自己的EXCEL函數(shù)
- ·用Excel制作公交向?qū)?/a>
- ·使用ADO獲取外部數(shù)據(jù)
- ·Excel中如何編程判斷字符顏色