創(chuàng)建自己的Excel函數(shù) 體驗(yàn)強(qiáng)大功能
Excel的強(qiáng)大函數(shù)功能,為我們帶來了極大方便,固然它有200多個(gè)函數(shù),但有時(shí)我們?yōu)閷?shí)現(xiàn)一項(xiàng)規(guī)定的功能,可能用到幾個(gè)函數(shù)或者采用嵌套函數(shù),這樣應(yīng)用起來,也不太方便。實(shí)在對(duì)于我們經(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ìn)來計(jì)算個(gè)人收進(jìn)調(diào)節(jié)稅,按照規(guī)定每月收進(jìn)減往800元基礎(chǔ)后,除往養(yǎng)老保險(xiǎn)金、失業(yè)保險(xiǎn)金、醫(yī)療保險(xiǎn)金、住房公積金、工會(huì)費(fèi),對(duì)剩下的余額征收個(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)進(jìn)Excel,在[工具]→[宏]→[Visul Basic編輯器](也可按組合鍵[Alt+F11]),在“Visul Basic編輯器”中選擇[插進(jìn)]→[添加模塊],在代碼窗口輸進(jìn)下列函數(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 tax = (income - 5800) * 0.2 + 625 Case .01 To tax = (income - ) * 0.25 + 3625 Case .01 To tax = (income - ) * 0.3 + 8625 Case .01 To tax = (income - ) * 0.35 + Case .01 To tax = (income - ) * 0.4 + Case Is >= tax = (income - ) * 0.45 + Case Is < 0 MsgBox "你的工資" && income && "輸進(jìn)有誤" End Select End Function 我們知道,Excel中函數(shù)都有一個(gè)說明,幫助使用,我們也要給這個(gè)函數(shù)添加一個(gè)說明。在工具欄中選擇“對(duì)象瀏覽器”(如圖1),選擇我們所做Tax模塊,在其[右鍵]→[屬性]中添加關(guān)于對(duì)這個(gè)函數(shù)的描述,這個(gè)描述將出現(xiàn)在Excel中關(guān)于函數(shù)的說明中,假如你要對(duì)軟件保密的話,在“模塊”上按右鍵,[VBAproject屬性]→[保護(hù)中設(shè)置密碼],嘿嘿!別人就看不到你的源程序了。 圖2使用自制函數(shù) 這時(shí),退出,回到Excel界面,將這個(gè)文件另?**豪嘈臀癕icrosoft Excel加載宏”,在Excel 2000中,它會(huì)自動(dòng)更改保?**恢夢猚:\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è)勾,在單元格直接輸進(jìn)“=tax()”,是不是像Microsoft office提供的函數(shù)一樣(如圖2),很有點(diǎn)專業(yè)味道。 圖3我的函數(shù)似乎不夠?qū)I(yè) 假如你把調(diào)用這個(gè)宏的Excel文件拷貝到別的機(jī)子上運(yùn)行,會(huì)出現(xiàn)“當(dāng)前所要打開的文檔含有其他文檔的鏈接,是否要使用其他工作簿中的改動(dòng)更新當(dāng)前工作簿”的提示,可以顯示原先計(jì)算的數(shù)據(jù),這是由于在Excel中的[工具]→[選項(xiàng)]→[重新計(jì)算]中,一般選中“保存外部鏈接數(shù)據(jù)”,但你不能重新計(jì)算,由于不能鏈接這個(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)容來對(duì)函數(shù)進(jìn)行相關(guān)描述,其中“標(biāo)題”部分將出現(xiàn)在“加載宏”的方框中,“備注”部分將出現(xiàn)在下面的函數(shù)說明部分。這時(shí)再看看,夠不夠?qū)I(yè)。在Excel 97中也可以在其右鍵屬性中作相應(yīng)更改。 |
|