excel中自定義函數(shù)實(shí)例剖析_第1頁
excel中自定義函數(shù)實(shí)例剖析_第2頁
excel中自定義函數(shù)實(shí)例剖析_第3頁
excel中自定義函數(shù)實(shí)例剖析_第4頁
excel中自定義函數(shù)實(shí)例剖析_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、excel中自定義函數(shù)實(shí)例剖析 2008-04-04 21:17Excel內(nèi)置的函數(shù)并不一定總是能滿足我們的需求,這時(shí),就可以通過定義自己的函數(shù)來解決問題 稍有Excel使用經(jīng)驗(yàn)的朋友,都知道Excel內(nèi)置函數(shù)的快捷與方便,它大大增強(qiáng)了Excel數(shù)據(jù)計(jì)算與分析的能力。不過內(nèi)置的函數(shù)并不一定總是能滿足我們的需求,這時(shí),就可以通過定義自己的函數(shù)來解決問題。文章末尾提供.xls文件供大家下載參考。一、認(rèn)識(shí)VBA 在介紹自定義函數(shù)的具體使用之前,不得不先介紹一下VBA,原因很簡(jiǎn)單,自定義函數(shù)就是用它創(chuàng)建的。VBA的全稱是Visual Basic for Application,它是微軟最好的通用應(yīng)用程

2、序腳本編程語言,它的特點(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)單的。二、什么

3、時(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)置

4、函數(shù)常常不能圓滿地解決問題,這時(shí),我們就可以使用自定義函數(shù)來滿足實(shí)際工作中的個(gè)性化需求。上面的講述比較抽象,我們還是把重點(diǎn)放在實(shí)際例子的剖析上,請(qǐng)大家在實(shí)際例子中進(jìn)一步體會(huì),進(jìn)而學(xué)會(huì)在Excel中創(chuàng)建和使用自定義函數(shù)。三、自定義函數(shù)實(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、的超過部分按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列的其余單元格

6、。既然公式能夠解決問題,為什么還要使用自定義函數(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窗口,我們將在這里自定義函

7、數(shù)。2. 進(jìn)入Visual Basic窗口后,選擇菜單“插入模塊”命令,于是得到“模塊1”,在其中輸入如下自定義函數(shù)的代碼(圖2):Function TAX(salary)Const r1 As Double = 0.05Const r2 As Double = 0.08Const r3 As Double = 0.2Select Case salaryCase Is <= 800TAX = 0Case Is <= 1500TAX = (salary - 800) * r1Case Is <= 2000TAX = (1500 - 800) * r1 + (salary - 1

8、500) * r2Case Is > 2000TAX = (1500 - 800) * r1 + (2000 - 1500) * r2 + (salary - 2000) * r3End SelectEnd Function圖 23. 函數(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ù)

9、的功能非常易于理解,同時(shí)如果稅率改變,相應(yīng)地變化r1、r2、r3的值即可。通常,自定義的函數(shù)只能在當(dāng)前工作薄使用,如果該函數(shù)需要在其它工作薄中使用,則選擇菜單“文件另存為”命令,打開“另存為”對(duì)話框,選擇保存類型為“Mircosoft Excel加載宏”,然后輸入一個(gè)文件名,如“TAX”單擊“確定”后文件就被保存為加載宏(圖4)。然后選擇菜單“工具加載宏”命令,打開“加載宏”對(duì)話框,勾選“可用加載宏”列表框中的“Tax”復(fù)選框即可,單擊“確定”按鈕后(圖5),就可以在本機(jī)上的所有工作薄中使用該自定義函數(shù)了。圖 4 圖 5 如果想要在其它機(jī)器上使用該自定義函數(shù),只要把上面的加載宏文件復(fù)制到其它電

10、腦上加載宏的默認(rèn)保存位置即可。說明:Windows XP系統(tǒng)下加載宏文件的默認(rèn)保存位置為:C:Documents and Settingszunyue(用戶帳戶)Application DataMicrosoftAddIns文件夾。(二) 計(jì)算獎(jiǎng)金的自定義函數(shù) 任務(wù)為了促進(jìn)銷售人員的工作積極性,銷售部門經(jīng)理制定了銷售業(yè)績(jī)獎(jiǎng)金制度,獎(jiǎng)金發(fā)放的標(biāo)準(zhǔn)獎(jiǎng)金率如下:月銷售額小于等于2800元的獎(jiǎng)金率為4,月銷售額為2800元至7900元的獎(jiǎng)金率為7,月銷售額為7900元至15000元的獎(jiǎng)金率為10,月銷售額為15000元至30000元的獎(jiǎng)金率為13,月銷售額為30000元至50000元的獎(jiǎng)金率為16,月

11、銷售額大于50000元的獎(jiǎng)金率為19。同時(shí),為了鼓勵(lì)員工持續(xù)地為公司工作,工齡越長(zhǎng)對(duì)獎(jiǎng)金越有利,具體規(guī)定為:參與計(jì)算的獎(jiǎng)金率等于標(biāo)準(zhǔn)獎(jiǎng)金率加上工齡一半的百分?jǐn)?shù)。比如一個(gè)工齡為5年的員工,標(biāo)準(zhǔn)獎(jiǎng)金率為7時(shí),參與計(jì)算的獎(jiǎng)金率則為9.5%=7%+(5/2)%。分析 首先,我們?cè)贓xcel2003中制作好如圖6的Sheet1工作表,開始分析計(jì)算的方法。圖 6 如果不考慮工齡對(duì)獎(jiǎng)金率的影響,那么可以利用嵌套使用IF函數(shù),在D2單元格輸入公式“=IF(B2<=2800,B2*4%,IF(B2<=7900,B2*7%,IF(B2<=15000,B2*10%,IF(B2<=30000,

12、B2*13%,IF(B2<=50000,B2*16%,B2*19%)”可以進(jìn)行計(jì)算。但是,該公式的一些弊端很明顯:一是公式看起來太繁瑣、不容易理解,而且IF函數(shù)最多只能嵌套7層,萬一獎(jiǎng)金率超過7個(gè),那么這個(gè)方法就無能為力了。另一方面,由于沒有考慮工齡,所以該方法不能算是解決問題了,如果我們把工齡融入到上述公式中,這樣公式就會(huì)顯得更加冗長(zhǎng)繁瑣,以后的管理與調(diào)整都很不方便。使用自定義函數(shù) 下面我們看看利用Excel自定義函數(shù)進(jìn)行計(jì)算的全過程,有了實(shí)例一的基礎(chǔ),相信大家理解起來更容易了。不過這里與實(shí)例一有一個(gè)明顯的差別是,該自定義函數(shù)使用了2個(gè)參數(shù),請(qǐng)大家注意體會(huì)。1. 在上述Excel工作表

13、中,選擇菜單“工具宏Visual Basic編輯器”命令,打開Visual Basic窗口,然后選擇菜單“插入模塊”命令,插入一個(gè)名為“模塊1”的模塊。2. 接著在模塊編輯窗口中輸入自定義函數(shù)的代碼如下(圖 7):Function REWARD(sales, years) As DoubleConst r1 As Double = 0.04Const r2 As Double = 0.07Const r3 As Double = 0.1Const r4 As Double = 0.13Const r5 As Double = 0.16Const r6 As Double = 0.19Selec

14、t Case salesCase Is <= 2800REWARD = sales * (r1 + years / 200)Case Is <= 7900REWARD = sales * (r2 + years / 200)Case Is <= 15000REWARD = sales * (r3 + years / 200)Case Is <= 30000REWARD = sales * (r4 + years / 200)Case Is <= 50000REWARD = sales * (r5 + years / 200)Case Is > 50000RE

15、WARD = sales * (r6 + years / 200)End SelectEnd Function圖 7 3. 從代碼可以看出,我們自定義了一個(gè)名為REWARD的函數(shù),它包含兩個(gè)參數(shù):銷售額sales和工齡years。常量r1至r6分別存放著各個(gè)等級(jí)的獎(jiǎng)金率,這樣處理的好處是當(dāng)獎(jiǎng)金率調(diào)整時(shí),修改非常方便。同時(shí),函數(shù)的層次結(jié)構(gòu)比前面的公式清晰,讓人容易理解函數(shù)的功能。此外,當(dāng)獎(jiǎng)金率超過7個(gè)時(shí),用自定義函數(shù)的方法仍然可以輕松處理。4. 接下來用該自定義函數(shù)進(jìn)行具體的計(jì)算。選擇菜單“文件關(guān)閉并返回到Microsoft Excel”命令,關(guān)閉Visual Basic窗口,返回Excel工作

16、表。選中D2單元格,在其中輸入“=reward(B2,C2)”,回車后就算出了第一個(gè)員工的獎(jiǎng)金,然后利用公式填充柄復(fù)制該公式到后面的單元格,即可完成對(duì)其它員工獎(jiǎng)金的計(jì)算(圖 8)。圖 8如果該自定義函數(shù)需要在其它工作薄或其它機(jī)器上使用,仿照實(shí)例一的操作方法進(jìn)行即可。四、 總結(jié) 我們通過兩個(gè)典型的實(shí)例講述了Excel中自定義函數(shù)使用的全過程,相信大家都已經(jīng)會(huì)到,其操作過程還是相當(dāng)簡(jiǎn)單的。如果你覺得自己的工作可能需要自定義函數(shù),想進(jìn)一步學(xué)好提高使用自定義函數(shù)的水平,筆者想給出如下幾點(diǎn)建議。第一點(diǎn)、盡力全面熟練地掌握Excel內(nèi)置的函數(shù)。能用內(nèi)置函數(shù)妥善解決的問題,就不必使用自定義函數(shù)。實(shí)際上,自定

17、義函數(shù)的執(zhí)行效率當(dāng)然是比Excel內(nèi)置函數(shù)的執(zhí)行效率慢的。第二點(diǎn)、認(rèn)真掌握好VBA的基礎(chǔ)知識(shí)。這點(diǎn)很容易理解,如果連VBA的基本規(guī)則都不甚清楚,那么別說是寫出精致的自定義函數(shù),就是寫出能解決問題的自定義函數(shù)也還大有疑問。第三點(diǎn)、具體寫自定義函數(shù)代碼之前,應(yīng)該認(rèn)真分析自己要處理的實(shí)際問題,如果這個(gè)問題有實(shí)際的數(shù)學(xué)函數(shù)模型,那么最好列出這個(gè)函數(shù)的解析式。以上只是筆者的一些淺薄認(rèn)識(shí),希望能為大家使用好Excel自定義函數(shù)帶來幫助,也希望大家能夠通過使用自定義函數(shù)提高自己的工作效率。 .xls文件下載Excel中用自動(dòng)運(yùn)行宏提高工作效率     

18、60; 在日常工作中,我們經(jīng)常需要在每次打開同一個(gè)Excel文件時(shí)都進(jìn)行一些例行的操作,如改變表格的格式、更新報(bào)表日期、打印文件、對(duì)工作表進(jìn)行保護(hù)或取消保護(hù)等等。Excel的自動(dòng)運(yùn)行宏“AutoOpen”可在文件打開后立即完成這些例行的操作任務(wù),既快速又準(zhǔn)確。假設(shè)我們?cè)贓xcel文件的工作表Sheet1中有一個(gè)銷售日?qǐng)?bào)表,下面我們?cè)谶@個(gè)文件中建立一個(gè)AutoOpen宏,讓它在文件打開后自動(dòng)完成下面任務(wù):       1. 取消工作表保護(hù);2. 把“當(dāng)日銷售”列里的數(shù)據(jù)值復(fù)制到“上日銷售”一列;3. 將日期增加一天;4. 恢復(fù)工作表保護(hù)

19、。具體做法如下:1. 在“工具”菜單上選擇“宏”子菜單,打開“宏”對(duì)話框,在“宏名”一欄里鍵入“AutoOpen”再點(diǎn)擊下面的“新建”鈕,進(jìn)入宏編輯狀態(tài)。注意不要把宏名字輸錯(cuò)了,否則宏不會(huì)自動(dòng)執(zhí)行。2. 在宏編輯狀態(tài)下,把下面VBA Visual Basic for Application 語句輸入到AutoOpen下面:Sub AutoOpen Sheets"Sheet1".Activate '取消工作表保護(hù) ActiveSheet.Unprotect '將當(dāng)日銷售值拷貝到上日銷售一欄 x = MsgBox"把當(dāng)日銷售值拷貝到上日銷售欄嗎?&qu

20、ot; vbYesNo If x = vbYes Then Range"B5B8".Copy Range"C5".Select Selection.PasteSpecial Paste=xlValues Application.CutCopyMode = False End If '將日期增加一天 x = MsgBox"把日期增加一天嗎?" vbYesNo If x = vbYes Then Range"C2" = Range"C2" + 1 End If '重新保護(hù)工作表 Ac

21、tiveSheet.Protect End Sub        將文件保存并關(guān)閉。重新打開此文件,體驗(yàn)一下AutoOpen宏是如何為你工作的吧。如果你想用AutoOpen完成其它的操作而又不知道如何用VBA語句直接建立宏,Excel的錄制宏的功能可以幫助你,但是別忘了把所錄制的宏取名為AutoOpen。關(guān)于錄制宏的方法請(qǐng)參閱一般的Excel功能手冊(cè)。Excel 巧用名稱框和輸入平方、立方巧用名稱框Excel中的名稱框位于編輯欄左端的下拉列表框中,它主要用于指示當(dāng)前選定的單元格、圖表項(xiàng)或繪圖對(duì)象。靈活運(yùn)用名稱框,對(duì)我們提高Excel的

22、使用效率有很大幫助。      一、快速命名單元格或單元格區(qū)域      選定需要命名的單元格或單元格區(qū)域,然后直接在“名稱框”中鍵入名稱,再按回車鍵即可快速命名選定的單元格或單元格區(qū)域。      二、快速移動(dòng)至指定單元格      如果要將活動(dòng)單元格移動(dòng)到指定的單元格,可直接在“名稱框”中鍵入需要移動(dòng)至相應(yīng)位置的單元格標(biāo)志。例如用戶要將活動(dòng)單元格從A1單元格移動(dòng)到X1000單元格時(shí),如果使用移

23、動(dòng)鼠標(biāo)指針的方法將是一件非常麻煩的操作,但是你只要在“名稱框”中鍵入“X1000”,按下回車鍵后活動(dòng)單元格就會(huì)立即移動(dòng)到X1000單元格中。      三、快速選定單元格區(qū)域      在“名稱框”中直接鍵入需要選定的單元格區(qū)域標(biāo)志,例如“B2:H200”,然后按下回車鍵,這時(shí)B2:H200單元格區(qū)域就被選中了。      如果需要選定工作表中不相鄰的單元格或單元格區(qū)域,只要在“名稱框”中使用逗號(hào)將各個(gè)單元格分隔開即可。例如在“名稱框”中鍵入“A

24、1,C2:D10,H:H”,按下回車鍵后,即可將A1單元格、C2:D10單元格區(qū)域以及H行同時(shí)選中。 要注意一點(diǎn)的是,如果要用名稱框選區(qū)的話,先要選中多個(gè)單元格. 第一步:選中多個(gè)單元格如(A1:D15) 第二步:打開插入菜單中選擇"名稱"菜單中選擇"定義",彈出對(duì)話框,在定義名稱對(duì)話框中輸入名稱,確定. 第三步:打開編輯欄中的名稱框旁邊的小三角,菜單中就可以選擇你定義的名稱了,單擊,這樣你定義的名稱就選中了. 還要一個(gè)就是先不用選中單元格也可以: 第一步:插入菜單中選擇"名稱"中的"定義",對(duì)話框中輸入名稱. 第

25、二步,在"引用位置"下面的方框里面把引用的內(nèi)容先刪除 ,然后,再次把你要定義的單元格選中,確定. 第三步:打開編輯欄中的名稱框旁邊的小三角,菜單中就可以選擇你定義的名稱了,單擊,這樣你定義的名稱就選中了. 輸入平方、立方      如果要在Excel中輸入平方、立方, 可采用如下方法解決這個(gè)問題:先在單元格中輸入“X2”或“X3”,再在編輯欄中選定“2”或“3”,點(diǎn)擊“格式單元格”,在“字體”標(biāo)簽頁中,勾選“上標(biāo)”前面的復(fù)選框,最后單擊“確定”即可。直接按ALT,別松手再按小鍵盤的178,同時(shí)放手,就是平方了。179是立方。

26、 EXCEL中VBA應(yīng)用舉例 在以下所舉例子中,均可以采用簡(jiǎn)潔的VBA代碼來完成。如果你以前沒有做過程序,看到那么多代碼會(huì)以為很難,其實(shí)不然,這些代碼有大部分都是可以錄制下來的,然后稍做修改即可。 例一、 工作簿中SHEET1(工資表)的A列是姓名,SHEET2(員工E-MAIL列表)的A列是姓名,B列是對(duì)應(yīng)的E-MAIL?,F(xiàn)在你想將所有員工的E-MAIL填寫到SHEET1中的B列, (注意:SHEET1中姓名“李三”在SHEET2中可能為“李三”,中間沒有空格)。簡(jiǎn)答:可以利用雙層循環(huán),從SHEET1中找出每個(gè)人名字,然后到SHEET2中去匹配,匹配上的就把SHEET1相應(yīng)的單元格賦值。Su

27、b fillCell()    Dim strTemp$, I%, J%    Worksheets("sheet1").Activate    For I = 1 To 3 '在之前可以用另一段程序判斷出行數(shù)        strTemp = Trim(Replace(Worksheets("sheet1").Cells(I, 1).Value, " ", "

28、;") '把姓名賦值給變量strTemp,并去掉空格        For J = 1 To 3 '在之前可以用另一段程序判斷出行數(shù)            If Trim(Replace(Worksheets("sheet2").Cells(J, 1).Value, " ", "") = strTemp Then 

29、0;              Worksheets("sheet1").Cells(I, 2).Value = Worksheets("sheet2").Cells(J, 2).Value                Exit For   

30、60;        End If        Next    NextEnd Sub例二、 在年度的工作計(jì)劃中,老總要求把公司每部業(yè)務(wù)電話的通話時(shí)長(zhǎng)的通話費(fèi)用按日(月)做成柱狀圖,供部門經(jīng)理和老總調(diào)閱。例三、 有一份公司所有員工工資表(或各代理處的存貨表),你想把這個(gè)總表按個(gè)人(代理處)分離成單個(gè)的EXCEL表,然后分發(fā)給對(duì)應(yīng)的人(代理處)簡(jiǎn)答:需要應(yīng)用到FSO對(duì)象,F(xiàn)SO控制文件的復(fù)制、命名等。首先利用Dim wkboo

31、k As Workbook和Set wkbook = Workbooks.Add新建一個(gè)工作簿,range("a:b").Copy 和Sheets("sheet1").Paste 可以把指定內(nèi)容復(fù)制到新工作簿中,wkbook.SaveAs方法可以用變量給文件命名,變量可以是姓名或代理處名。然后調(diào)用JMAIL或其它控件把文件發(fā)到指定的郵箱。例四、 作為會(huì)務(wù)人員,你需要每個(gè)與會(huì)人員簽到,你希望在A列每輸入一個(gè)名字(或用戶ID號(hào))時(shí),在B列就出現(xiàn)精確到分鐘的時(shí)間簡(jiǎn)答:以下為基本代碼,可以根據(jù)情況再做判斷。輸入完一個(gè)到會(huì)人員名字后再回到這個(gè)單元格,就可以在同行相

32、鄰一列的單元格中寫出系統(tǒng)時(shí)間。    Dim strtemp$, strAdd$    strtemp = Trim(ActiveCell.Value)    strAdd = ActiveCell.Address    If Len(strtemp) > 0 Then        ActiveCell.Offset(0, 1).Value = Format(Now, "yyyy-mm-d

33、d hh:mm:ss")    End If例五、 如果有一大批格式統(tǒng)一的TXT文檔需要導(dǎo)入到EXCEL中去并作一些調(diào)整(或者一批EXCEL表需要導(dǎo)出為TXT文檔或HTML文檔,并為導(dǎo)出的文件命名)簡(jiǎn)答:用FSO把一個(gè)要倒入的的TXT文件的名字取出來,然后利用    Workbooks.OpenText Filename:="文件名", StartRow:=1, _        DataType:=xlDelimited, TextQ

34、ualifier:=xlDoubleQuote, ConsecutiveDelimiter _        :=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _        Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)打開TXT文件(一些屬性可以實(shí)際情況修改),然后再利用SAVE AS 保存就可以完成TXT

35、-EXCEL的倒入。反過來更容易些,可以用FSO新建TXT(html)文件,然后把EXCEL中符合條件的記錄集寫進(jìn)TXT(html)文件即可。例六、 在公司的SQLSERVER或ACCESS數(shù)據(jù)庫中集中存放一些員工檔案或公司運(yùn)營(yíng)記錄,需要把符合條件的記錄導(dǎo)出到EXCEL表中,并做出折線圖或柱狀解答:本例應(yīng)用到ADO對(duì)象,先在VBE編輯環(huán)境中菜單“工具/引用”添加對(duì)ADO的引用,然后在程序中建立跟SQLSERVER或ACCESS數(shù)據(jù)庫的連接,用SQL語句把查找的結(jié)果集RECORDSET寫進(jìn)EXCEL的CELLS當(dāng)中。然后再利用CHARTS對(duì)象添加圖表就可以了。例七、 把EXCEL中的數(shù)據(jù)在WOR

36、D中按一定的順序和條件顯示出來解答:本例要在VBE編輯環(huán)境中菜單“工具/引用”添加對(duì)WORD的引用,Dim wd As Word.Application和Dim wddoc As Word.Document可以定義WORD中的對(duì)象,    Set wd = New Word.Application    wd.Visible = True       wddoc.Select        

37、60; wddoc.SaveAs "c:tt.doc"wd.Quit這樣可以做到對(duì)WORD的控制。例八、 在EXCEL中有20個(gè)以前做的折線圖,現(xiàn)在要在圖標(biāo)題末尾中增加“(2003年一季度)”這幾個(gè)字    Dim wkBook As Excel.Workbook    Dim wkSheet As Excel.Worksheet    Dim I%       Set wkBook = ActiveWorkbook 

38、;   For Each wkSheet In wkBook.Worksheets '循環(huán)所有的表                   wkSheet.ChartObjects(I).Activate '將Shape對(duì)象轉(zhuǎn)換成對(duì)CHART的控制           

39、0;           'activeChart.Shapes("圖表 1").IncrementLeft            With ActiveChart            .HasTitle = True  

40、0;                    End With        Next    NextEnd Sub 運(yùn)用Excel三大條件函數(shù)解決實(shí)際問題!       秋盡冬至,又到一年年終時(shí)。在工作中,數(shù)據(jù)的運(yùn)算量和匯總的操作一下比平時(shí)多了不少。眾所周知,

41、在Excel中可以對(duì)數(shù)據(jù)進(jìn)行各種不同的運(yùn)算和匯總,今天我向大家介紹與條件相關(guān)的函數(shù)三兄弟,分別是“COUNTIF”、“SUMIF”和“IF”函數(shù)。他們有一個(gè)共同的特點(diǎn)都姓字符“IF”。大兄弟:COUNTIF函數(shù)(計(jì)數(shù)求和)COUNT函數(shù),顧名思義是用來計(jì)數(shù)的,統(tǒng)計(jì)所選擇區(qū)域的數(shù)值型單元格個(gè)數(shù)。COUNTIF是COUNT函數(shù)的引伸與拓展,在計(jì)數(shù)時(shí)加上先前條件,只有符合計(jì)數(shù)的條件才進(jìn)行統(tǒng)計(jì)計(jì)算。比如,從員工信息表中,計(jì)算出有多少人的年齡大于35歲。下面我們來看一個(gè)典型的分類計(jì)數(shù)匯總的例子。這里有一張銷售流水記錄表,每名銷售人員累計(jì)做了多少“銷售訂單個(gè)數(shù)”呢? 大兄弟COUNTIF正常工作需要兩個(gè)參

42、數(shù)條件區(qū)域(本例為左側(cè)表中“銷售人員”一列)和計(jì)數(shù)條件(本例為右側(cè)表中的人員姓名)。要計(jì)算第一位銷售人員的“訂單數(shù)”,很簡(jiǎn)單,輸入函數(shù)公式 “=COUNTIF($C$2:$C$16,E2)”即可(見圖1)。二兄弟:SUMIF函數(shù)(條件求和)SUM函數(shù)的作用是對(duì)數(shù)據(jù)求和,而SUMIF對(duì)它進(jìn)行了引伸和拓展,比如計(jì)算“金額”在1元以上的數(shù)據(jù)總和、按照人員或產(chǎn)品分類計(jì)算數(shù)據(jù)總和等等。它有3個(gè)參數(shù),分別是條件區(qū)域、判斷條件、實(shí)際的求和區(qū)域(如果它與“條件區(qū)域”是一個(gè)區(qū)域,就可省略)。在上例中,計(jì)算每位“銷售人員”的訂單總金額,就要使用SUMIF函數(shù)來協(xié)助了。如果要計(jì)算每個(gè)人的銷售訂單總金額,把左側(cè)表的“銷售人員”一列當(dāng)作“條件區(qū)域”,把右側(cè)表的每個(gè)名單當(dāng)作求和“條件”,把左側(cè)表的每筆“訂單金額”當(dāng)作“實(shí)際求和區(qū)域”,在G2單元格中輸入數(shù)據(jù)計(jì)算公式 “=SUMIF($C$2:$C$16,E2,$B$2:$B$16)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論