軟件首頁 |  文章首頁
最新更新 軟件分類 設(shè)為首頁 加入收藏 聯(lián)系我們
當(dāng)前位置:首頁文章首頁 IT學(xué)院 VC(VC++)

Excel 2007中自定義函數(shù)實(shí)例剖析

作者:東坡下載  來源:uzzf  發(fā)布時(shí)間:2010-10-14 9:06:58  點(diǎn)擊:

    一、認(rèn)識(shí)VBA

  在介紹自定義函數(shù)的具體使用之前,不得不先介紹一下VBA,原因很簡(jiǎn)單,自定義函數(shù)就是用它創(chuàng)建的。VBA的全稱是Visual Basic for Application,它是微軟最好的通用應(yīng)用程序腳本編程語言,它的特點(diǎn)是容易上手,而且功能非常強(qiáng)大。

  在微軟所有的Office組件中,如Word、Access、Powerpoint等等都包含VBA,如果你能在一種Office組件中熟練使用VBA,那么在其它組件中使用VBA的原理是相通的。

  Excel中VBA主要有兩個(gè)用途,一是使電子表格的任務(wù)自動(dòng)化;二是可以用它創(chuàng)建用于工作表公式的自定義函數(shù)。

  由此可見,使用Excel自定義函數(shù)的一個(gè)前提條件是對(duì)VBA基礎(chǔ)知識(shí)有所了解,如果讀者朋友有使用Visual Basic編程語言的經(jīng)驗(yàn),那么使用VBA時(shí)會(huì)感覺有很多相似之處。如果讀者朋友完全是一個(gè)新手,也不必太擔(dān)心,因?yàn)閷?shí)際的操作和運(yùn)用是很簡(jiǎn)單的。

  二、什么時(shí)候使用自定義函數(shù)?

  有些初學(xué)Excel的朋友可能有這樣疑問:Excel已經(jīng)內(nèi)置了這么多函數(shù),我還有必要?jiǎng)?chuàng)建自己的函數(shù)嗎?

  回答是肯定的。原因有兩個(gè),它們也正好可以解釋什么時(shí)候使用Excel自定義函數(shù)的問題。

  第一,自定義函數(shù)可以簡(jiǎn)化我們的工作。

  有些工作,我們的確可以在公式中組合使用Excel內(nèi)置的函數(shù)來完成任務(wù),但是這樣做的一個(gè)明顯缺點(diǎn)是,我們的公式可能太冗長(zhǎng)、繁瑣,可讀性很差,不易于管理,除了自己之外別人可能很難理解。這時(shí),我們可以通過使用自定義函數(shù)來簡(jiǎn)化自己的工作。

  第二,自定義函數(shù)可以滿足我們個(gè)性化的需要,可以使我們的公式具有更強(qiáng)大和靈活的功能。

  實(shí)際工作的要求千變?nèi)f化,僅使用Excel內(nèi)置函數(shù)常常不能圓滿地解決問題,這時(shí),我們就可以使用自定義函數(shù)來滿足實(shí)際工作中的個(gè)性化需求。

  上面的講述比較抽象,我們還是把重點(diǎn)放在實(shí)際例子的剖析上,請(qǐng)大家在實(shí)際例子中進(jìn)一步體會(huì),進(jìn)而學(xué)會(huì)在Excel中創(chuàng)建和使用自定義函數(shù)。

  下面我們通過兩個(gè)典型實(shí)例,學(xué)習(xí)自定義函數(shù)使用的全過程。這里實(shí)際上假設(shè)讀者朋友都有一定的VBA基礎(chǔ)。

  假如你完全沒有VBA基礎(chǔ)也不要緊,當(dāng)學(xué)習(xí)完實(shí)例后,若覺得自定義函數(shù)在自己以后的工作中可能用到,那么再去補(bǔ)充相應(yīng)的VBA基礎(chǔ)也不遲。

  (一) 計(jì)算個(gè)人調(diào)節(jié)稅的自定義函數(shù)

  任務(wù)

  假設(shè)個(gè)人調(diào)節(jié)稅的收繳標(biāo)準(zhǔn)是:工資小于等于800元的免征調(diào)節(jié)稅,工資800元以上至1500元的超過部分按5%的稅率征收,1500元以上至2000元的超過部分按8%的稅率征收,高于2000元的超過部分按20%的稅率征收。

  分析

  假設(shè)Sheet1工作表的A、B、C、D列中分別存放“姓名”、“總工資”、“調(diào)節(jié)稅”、“稅后工資”字段數(shù)據(jù),如圖1所示。 


圖 1

   平時(shí)使用較多的方法是借助嵌套使用IF函數(shù)計(jì)算,比如在C2單元格輸入公式“=IF(B2<=800,0,IF(B2<=1500,(B2-800)*0.05,IF(B2<=2000,700*0.05+(B2-1500)*0.08,700*0.05+500*0.08+(B2-2000)*0.2)))”,然后通過填充柄復(fù)制公式到C列的其余單元格。

  既然公式能夠解決問題,為什么還要使用自定義函數(shù)的方法呢?

  正如前面提到的兩個(gè)方面的原因:一是公式看起來太繁瑣,不便于理解和管理;二是公式的處理能力在面對(duì)稍微復(fù)雜一些的問題時(shí)便失去效用,比如假設(shè)調(diào)節(jié)稅的稅率標(biāo)準(zhǔn)會(huì)根據(jù)年齡的不同而改變,那么公式可能就無能為力了。

  使用自定義函數(shù)

  下面就通過此例介紹使用自定義函數(shù)的全過程,即使是初學(xué)Excel的朋友,也會(huì)感覺其操作實(shí)際上是非常簡(jiǎn)單的。

  1. 為了便于測(cè)試自定義函數(shù)的計(jì)算效果,可以先把上面采用公式計(jì)算的結(jié)果刪去。然后選擇菜單“工具→宏→Visual Basic編輯器”命令(或按下鍵盤Alt+F11組合鍵),打開Visual Basic窗口,我們將在這里自定義函數(shù)。

  2. 進(jìn)入Visual Basic窗口后,選擇菜單“插入→模塊”命令,于是得到“模塊1”,在其中輸入如下自定義函數(shù)的代碼(圖2):

  Function TAX(salary)

  Const r1 As Double = 0.05

  Const r2 As Double = 0.08

  Const r3 As Double = 0.2

  Select Case salary

  Case Is <= 800

  TAX = 0

  Case Is <= 1500

  TAX = (salary - 800) * r1

  Case Is <= 2000

  TAX = (1500 - 800) * r1 + (salary - 1500) * r2

  Case Is > 2000

  TAX = (1500 - 800) * r1 + (2000 - 1500) * r2 + (salary - 2000) * r3

  End Select

  End Function 


圖 2

   3. 函數(shù)自定義完成后,選擇菜單“文件→關(guān)閉并返回到Microsoft Excel”命令,返回到Excel工作表窗口,在C2單元格中輸入公式“=TAX(B2)”回車后就計(jì)算出了第一個(gè)員工應(yīng)付的個(gè)人調(diào)節(jié)稅,然后用公式填充柄復(fù)制公式到其它后面的單元格,這樣就利用自定義函數(shù)完成了個(gè)人調(diào)節(jié)稅的計(jì)算(圖3)。 


圖 3

  4. 從自定義函數(shù)的代碼中可以看出,用這種方式,自定義函數(shù)的功能非常易于理解,同時(shí)如果稅率改變,相應(yīng)地變化r1、r2、r3的值即可。

  通常,自定義的函數(shù)只能在當(dāng)前工作薄使用,如果該函數(shù)需要在其它工作薄中使用,則選擇菜單“文件→另存為”命令,打開“另存為”對(duì)話框,選擇保存類型為“Mircosoft Excel加載宏”,然后輸入一個(gè)文件名,如“TAX”單擊“確定”后文件就被保存為加載宏(圖4)。

首頁 上一頁 [1] [2] [3]  下一頁 尾頁

文章評(píng)論

欄目導(dǎo)航

本類推薦文章

關(guān)于本站 | 網(wǎng)站幫助 | 廣告合作 | 下載聲明 | 友情連接 | 網(wǎng)站地圖
Copyright © 20098-2010 uzzf下載站. All Rights Reserved .