ExcelVBA實例教程指南_第1頁
ExcelVBA實例教程指南_第2頁
ExcelVBA實例教程指南_第3頁
ExcelVBA實例教程指南_第4頁
ExcelVBA實例教程指南_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ExcelVBA教程之一:寫在前面VBA功能如何強大,這已勿庸費言,但如何才能很快進階,寫出自己滿意的程序,卻取決于個人努力和悟性。我下了很大功夫卻收效甚微,有時,高手一句點撥卻勝讀三天書。所以,我把個人學(xué)習(xí)所得作一點整理,希望有助于后學(xué)。只所以會有看書沒用之感,一來是因為市面(我國)上大多數(shù)計算機類圖書多為粗制濫造之作(這話稍有唐突),二來因為計算機這東西太呆板,不見得新岀現(xiàn)的問題就能立即得到某本書籍上的解釋,新問題總是層出不窮的。7MuD。想把一門編程語言全部搞懂,再去寫點程序,是一個十分愚蠢的想法。你想蓋房子,難道你想先學(xué)會制造磚頭、玻璃等?我承認,把語言弄懂再做事情會很順手,但是,你知道嗎,有多少人在弄懂一門晦澀難懂的語言之前就放棄了呢?比如,什么叫面向?qū)ο缶幊蹋?OOP和以前的流線性編程有什么異同?我還是大力提倡學(xué)以致用,別指望什么事你都能成專家,計算機世界的“羅氏定理”就是:“畢其一生,不能窮其萬一”,你記住了嗎? GGIkQ那么,對于沒有編程基礎(chǔ)的人,怎樣才能進步得快呢?我有幾點思考:你一定要帶著明確的目的去做一件具體的事。這樣,才會在做的過程中發(fā)現(xiàn)問題,并逐步去解決這些問題。比如,我想做一個《學(xué)生成績分析系統(tǒng)》,我就會想到怎么才能把學(xué)生分?jǐn)?shù)分成不同的班、怎么才能算岀總分、平均分、標(biāo)準(zhǔn)差等、怎樣比較各班的情況,怎樣用圖形顯示更直觀,怎么樣才能把某個學(xué)生的歷次成績放在一起比較等。pVTNJ你動手去做一做,一點一點地完成你上面的設(shè)想,不必因為這個大工程沒做出來而忽略你在局部的突破,這樣,你會越來越有信心,這就夠了,還有什么比有信心做事的感覺更好的了嗎? UoyEz合理及時利用網(wǎng)絡(luò)資源,這絕對是個好東西,或許你看起來很了不起的問題,在別人看來簡直不算什么,一定會有人為你解答。上網(wǎng)并不只是 QQ和game啊!同時要好好利用軟件的幫助系統(tǒng),這才是最權(quán)威的解釋,很多計算機書籍抄自幫助,你想,微軟的專家寫的,絕對原創(chuàng),他還能去抄誰? NVsC。做了一些工作之后,再回過頭來看書,就會感覺很親切,覺得寫書的人原來也不是一無是處,也是很辛苦的(不要過分自我批評了)。不過,要看書,計算機類的,我百分之一萬地推薦你看外國人寫的,首先,軟件是人家編的,當(dāng)然更了解。其次,外國人寫的,又被介紹到中國來,也是比較優(yōu)秀的了。三來,我確實作過對比,看老外的書收益最大。語言不通的問題怎么辦?金山詞霸一下唄。 LV7Cw我為什么要寫這個東西?一是因為我想幫助別人,二是因為我想因此促進自己,三是因為我反感某些號稱程序員的家伙,似乎編程是一件多么了不起的事,用一些極端人士的話來說:“編程有什么了不起?不就是判斷和循環(huán)嗎”,說得很有道理,從本質(zhì)上說,計算機就是在做判斷和循環(huán),不信你就跟著我來吧。pBfsGo好了,Let'sgoExcelVBA教程之二:從一個界面設(shè)計開始一個好的軟件,除了運算速度快、體積小后,更重要的是,它的用戶界面是不是很友好、親切,“友好、親切”這樣的詞匯在開始接觸計算機語言時,感覺很好笑,但現(xiàn)在不一樣了,我感覺這兩個詞最貼切!界面友好,就是引導(dǎo)用戶能很快找到他需要的服務(wù),最能想到他的心思,最體貼他,讓他不時地心動,不時地贊嘆!界面友好,就是能讓用戶在不經(jīng)意間學(xué)到好多知識, 無形中豐富了他自己,讓他有美的享受!界面友好,還在于一目了然的界面卻能讓他需要的功能呼之即來,揮之即去!如此等等。WQfVJ那么,我想做一個《學(xué)生成績分析系統(tǒng)》,我該怎么做呢?以下的界面你滿意嗎?

這個界面上有你做成績分析的各項功能,從考試的組織生成考號、到學(xué)科組錄入各科成績、到錄錯后的修改、到統(tǒng)計分析生成各班情況、各學(xué)科組情況、人頭數(shù)、分?jǐn)?shù)線的預(yù)測、到打印、存檔、調(diào)用。最為特色的功能是深度跟蹤,它可以自動把一個學(xué)生的歷次成績都調(diào)出來,進行歷史分析,看一看一位學(xué)生的成績?yōu)槭裁磿没驂?,這個功能能不讓人心動嗎?如果你不知道各個按鈕的作用, 旁邊就是幫助系統(tǒng),告訴你它們的功能是什么,你應(yīng)當(dāng)怎么去做。你還有什么問題呢?如果有,我已經(jīng)提供了E-mail地址,告訴我啊,可以為你量身定做!要說多余,就是版權(quán)信息了,呵呵,我也是勞動,你就尊重一下沒什么大不了的啊! 血5丫。以上這個界面,可以說十分友好了。那么,我到哪里去做這個東西呢?要編程嗎?不用編程,打開Excel,按下Alt+F11,就可以了,我還可以右擊工作表,選查看代碼,還有其它方法,我的意見是一種就夠了。我們的目的是去公園玩,而不是總結(jié)有幾條路可以到那里,別開小差,快回來! NPL8d打開Excel,按下Alt+F11,你看到了下圖:

再點擊“插入”菜單,選“用戶窗體”,然后得到下圖

中間有個工具箱,上面有按鈕啊、文本框啊、標(biāo)簽啊等等,你只要把它們拖到到右邊那個帶有“麻麻點”的窗體中,并調(diào)整一下它們的大小和位置,就會做得比我還好了了。精確調(diào)整它們,要用到左下角的屬性窗口。怎么拖知道嗎?不是用繩子捆住,不是用牛拉,而是用鼠標(biāo)! DX6rv。建立了界面之后,你除了長舒一口氣外,是不是體會到一點喜悅呢?生活就是這樣,找個空偷著笑,不過,還是要干點實事的喲! VvdxO我猜到了,現(xiàn)在你比我還急了,你更想賦于每個按鈕一定的功能,希望點它一下,它就能做點事情,你的想法太對了,每一個按鈕,當(dāng)我們給它各寫一段程序,讓它能實現(xiàn)一定的功能時,我們就把叫做面向這個對象編程,對象,在這里,就是按鈕。531NJ希望那些比較“zhuai”的程序員別面帶輕蔑,你倒給我說說,如何才能讓不懂程序的同志很快理解“面向?qū)ο缶幊獭边@個意思? zUWLW我們下一期見!ExcelVBA教程之四:你要刪除誰前面的學(xué)習(xí),讓我們初步體驗到使用代碼比較方便,代碼本身也比較簡單,這是VBA的優(yōu)勢,我們發(fā)現(xiàn),編程其實并不難,不過,這只是初步,想實現(xiàn)比較復(fù)雜的功能,路還長著呢,好在,只要有信心,有興趣,總是可以成功的。OMyvK那么,如果我想插入的不是一張表,而是20張表,需要運行20次上節(jié)課所提到的代碼嗎?其實不需要,我們只要再插入幾行代碼就可以了。 iCNsK?;仡櫼幌拢篠ub建立工作表()Sheets.AddEndSub可以利用工作表的Add屬性增加工作表,如果想添加更多,只要設(shè)置一個循環(huán)就可以了。還記得教程一中的那種話嗎? 編程有什么了不起?不就是判斷和循環(huán)嗎”,我們來驗證一下。q42mySub建立工作表()DimiAsIntegerFori=1To5Sheets.AddNextiEndSub這段代碼一運行,一下子就可以插入 5張表,如果你把5改成50,則一下子可以產(chǎn)生50張表,如果是手工插入,你要花多長時間啊! YftKG。其中的for…next就是表達循環(huán)關(guān)系的一種方式,還有其它種類,暫且不表。值得提醒的是,循環(huán)變化i在使用前,你一定要先和dim聲明一下。vrpoh你發(fā)現(xiàn),所生成的工作表的名稱,是自動加上去的,要是在生成的時候,就給個名字,是不是會更好呢?試試下面的代碼吧。 GZY9。Subcreatsheet1()DimiAsIntegerFori=1To10Sheets.AddActiveSheet.Name=iNextiEndSub一下子生成了10張表,表名從1到10,難道用它來表示一班到十班,不是非常好嗎?我想到了我們的《成績分析系統(tǒng)》。如果名字不是一個系列的數(shù)字,你可以使用數(shù)組來表達,比如知個學(xué)科表。 GtPBXSubcreatsheet()DimiAsIntegerDimsheetNamesheetName=Array("語","數(shù)","英","物","化")Fori=0To4Sheets.AddAfter:=Sheets(Sheets.Count)ActiveSheet.Name=sheetName(i)NextiEndSub到目前,你的工作簿中已經(jīng)有很多工作表了, 如果你實驗的次數(shù)足夠多,你還會收到一些錯誤的警告,那是因為你插入的工作表重名了。 WlciL。如果你要刪掉一張工作表,那有點麻煩,因為你必須具體而明確地指明是哪一張工作表,否則,程序不知你對誰的工作不滿意了,要刪除誰,你得先指明。這完全不象某些的領(lǐng)導(dǎo),要表揚,就會表揚一大堆,盡管有時是某名其妙的張冠李戴,而批評,也是一本糊涂賬。TxJG3怎么刪呢?看下例:SubdeleteSheets()Sheets(“sheetl”).DeleteEndSub如果你想刪掉一些工作表,你想手動還是用代碼自動化呢?當(dāng)然是后者,看看下例。Subdeletesheet3()DimiAsIntegerFori=1To5Sheets(CStr(i)).DeleteNextiEndSub千萬注意不要寫成Sheets(i),一定要加上CStr(),我就是吃了這個虧,浪費幾個小時,氣暈了頭才發(fā)現(xiàn)的,計算機是多么機械的一個東西,不能越雷池一步,有點象某些死板的領(lǐng)導(dǎo)。XjHFE要是刪那種不是數(shù)據(jù)系列的工作表,就得用下面的代碼了。SubdeleteSheets()DimclassNameclassName=Array(語","數(shù)","英","物","化")Fori=0To4Sheets(className(i)).DeleteNextiEndSub你插入的那些有名字的工作表,將逐一被刪除!每刪一張,都會給一句警告,能否讓它不出現(xiàn)呢?再加兩句代碼,就可以了。SubDeletesheet()DimclassNameclassName=Array(語","數(shù)","英","物","化")Application.DisplayAlerts=FalseFori=0To4Sheets(className(i)).DeleteNextiApplication.DisplayAlerts=TrueEndSub以上代碼將用到《成績分績系統(tǒng)》統(tǒng)計分析按鈕和退出系統(tǒng)按鈕中,點一下統(tǒng)計分析,就會產(chǎn)生各班級和各學(xué)科分?jǐn)?shù)表,只是暫時還沒有數(shù)據(jù),會有的,你得有點兒耐心。再點一下退出按鈕,將把這些表給刪了,會讓我們的軟件體積更小。Z599E好啦,到這里,你已經(jīng)可以添加你想要的任意數(shù)量的工作表, 也可以把它刪了,都只是彈指之間的事情,以后,你要是有什么不順心的事,可以到這里反復(fù)添加和刪除,相當(dāng)于到健身房去打拳。好象,人們越來越脆弱了,據(jù)說這樣可以發(fā)泄自己,讓自己很快平靜下來。常聽到兩句時髦的話:

溫馨提示

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

最新文檔

評論

0/150

提交評論