利用Excel VBA生成學(xué)生成績(jī)單_第1頁
利用Excel VBA生成學(xué)生成績(jī)單_第2頁
利用Excel VBA生成學(xué)生成績(jī)單_第3頁
利用Excel VBA生成學(xué)生成績(jī)單_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

PAGE1第3頁共5頁利用ExcelVBA生成學(xué)生成績(jī)單摘要:本文用兩個(gè)實(shí)例來介紹如何利用MS-OfficeExcel中的編程功能來實(shí)現(xiàn)自動(dòng)化處理學(xué)生成績(jī)單,使我們輕松的完成打印學(xué)生成績(jī)單的工作,并在其中穿插介紹一些VBA編程知識(shí)。本文首先,簡(jiǎn)單的介紹了VBA的開發(fā)環(huán)境,其中本文只對(duì)用到的知識(shí)進(jìn)行了介紹,如需詳細(xì)內(nèi)容請(qǐng)查閱VisualBasic程序設(shè)計(jì)書籍。然后,分別詳介了VBA在Excel中的應(yīng)用,在應(yīng)用實(shí)例中,本文采用了先提出問題,后錄制宏,再分析整理宏的方法,來介紹VBA在Excel中的應(yīng)用,并且都給出了完整的程序代碼,以方便讀者使用。關(guān)鍵字:ExcelVBA宏代碼當(dāng)今是信息技術(shù)飛速發(fā)展的時(shí)代,人們?nèi)粘9ぷ?、生活的方方面面都在運(yùn)用信息技術(shù),享受著信息技術(shù)給我們帶來的便利,現(xiàn)在雖不是微軟大旗一統(tǒng)天下,但在日常工作和生活中MS-Office仍然是人們運(yùn)用最多、最廣的辦公軟件。而在MS-Office中尤其以Word、Excel、PowerPoint的使用率最高,人們對(duì)這些軟件的運(yùn)用程度直接影響著工作的效率,本文以Excel為例,來介紹如何利用Excel中的VBA功能來實(shí)現(xiàn)自動(dòng)化處理學(xué)生成績(jī)單,使我們輕松的完成許多日常工作。在MS-Office中VBA(VisualBasicforApplications)是一種新的功能強(qiáng)大的宏語言,宏其實(shí)是指示W(wǎng)ord、Excel、PowerPoint等執(zhí)行功能的指令集合,在Excel中通過使用錄制宏命令你能錄制新宏,而且可以對(duì)已經(jīng)錄制的宏進(jìn)行編輯修改,你一但學(xué)會(huì)如何在Excel中錄制和編輯宏,你就掌握了許多在其它應(yīng)用程序中使用宏所需要的編程技術(shù),也就是說在其它程序中使用VBA。一般情況下你所建立的宏應(yīng)該適用于同一類的文件,而且對(duì)這類文件能夠完成一些通用性的設(shè)置工作。一.ExcelVBA應(yīng)用(一).Excel中打印帶標(biāo)題的學(xué)生成績(jī)單:在學(xué)校,學(xué)生的成績(jī)單一般都用Excel來統(tǒng)計(jì)打印,因?yàn)镋xcel中提供了大量的公式和函數(shù),方便進(jìn)行各種計(jì)算。但到了設(shè)置打印學(xué)生個(gè)人成績(jī)條時(shí),就出現(xiàn)了問題,因?yàn)槌煽?jī)單只有一個(gè)標(biāo)題行,不能讓每個(gè)學(xué)生的成績(jī)條都有標(biāo)題行(如表1)。表1表2通過比較以上兩個(gè)表格,我們看出表2每個(gè)學(xué)生的成績(jī)條都有標(biāo)題行,下面我們就介紹如何輕松制作這樣的表格。因?yàn)樵贓xcel中學(xué)生的成績(jī)是從第二行開始連續(xù)存放的,當(dāng)打印出來以后,只有第一個(gè)學(xué)生的成績(jī)條中有標(biāo)題行,而下面的學(xué)生只能看到數(shù)字,而不清楚這個(gè)數(shù)字是什么科目,解決這個(gè)問題,我們可以用復(fù)制粘貼的方法,將第一行的標(biāo)題行復(fù)制到每一個(gè)學(xué)生成績(jī)行的上方,但是這個(gè)工作量是可想而知的,如果貴校有1000名學(xué)生,那你豈不是要復(fù)制粘貼1000次,如果學(xué)生數(shù)更多……(又要加班)下面我們來用剛才介紹的VBA來簡(jiǎn)化這一操作。在Excel中VBA的用法是,利用錄制宏的方法來實(shí)現(xiàn),先取得在Excel中這些復(fù)制粘貼操作的宏代碼,再選擇其中對(duì)我們有用的代碼來構(gòu)成我們需要的程序。1.操作要求:在空白的工作表sheet2中按順序粘貼成績(jī)表sheet1的標(biāo)題行和第一個(gè)學(xué)生的成績(jī)行。2.錄制宏:打開成績(jī)文件,執(zhí)行菜單中的“工具—>宏—>錄制新宏”,在sheet2工作表中按順序粘貼標(biāo)題行和第一個(gè)學(xué)生的成績(jī)行,停止錄制。再執(zhí)行菜單中的“工具—>宏—>宏”對(duì)宏進(jìn)行編輯分析和整理,如下:Sheets("Sheet1").Select'選取sheet1工作表Rows("1:1").Select'代表選定當(dāng)前工作表中的行,括號(hào)中的是行參數(shù),這里是標(biāo)題行Selection.Copy'返回當(dāng)前窗口中的選定對(duì)象,將選定的內(nèi)容復(fù)制Sheets("Sheet2").Select'選取sheet2工作表Rows("1:1").Select'選定要粘貼的位置ActiveSheet.Paste'粘貼標(biāo)題行Sheets("Sheet1").Select'選取sheet1工作表Rows("2:2").Select'選取成績(jī)行(第一名學(xué)生)Selection.Copy'復(fù)制成績(jī)行Sheets("Sheet2").Select'選取sheet2工作表Rows("2:2").Select'選定要粘貼的位置ActiveSheet.Paste'粘貼成績(jī)行(第一名學(xué)生)通過上述代碼,我們可以看出其工作原理是:先選取標(biāo)題行,再復(fù)制標(biāo)題行,然后選取要插入行的位置,再粘貼標(biāo)題行,成績(jī)行也是相同的操作。如此循環(huán),一直到最后一個(gè)學(xué)生的成績(jī)行粘貼好就完成了操作。3.分析整理代碼:以上原理明白后,我們用程序?qū)崿F(xiàn)這一過程,這個(gè)程序分為兩部分,一部分用于實(shí)現(xiàn)將標(biāo)題行粘貼到工作表sheet2的第1、3、5、7、9……行,另一部分用于實(shí)現(xiàn)將學(xué)生成績(jī)行信息逐條粘貼到第2、4、6、8、10……行,以100名學(xué)生為例,代碼如下:Sub完善成績(jī)單()dimiasInteger'定義一個(gè)變量fori=1to100'循環(huán)100次,實(shí)際應(yīng)用中要改為學(xué)生數(shù)Sheets("Sheet1").Select'選取sheet1,sheet1為學(xué)生成績(jī)信息表Rows("1:1").Select'選取標(biāo)題行Selection.Copy'復(fù)制標(biāo)題行Sheets("Sheet2").Select'選取sheet2,sheet2為要打印的帶標(biāo)題行的學(xué)生成績(jī)表Rows(i*2-1).Select'選取第1、3、5、7、9……行ActiveSheet.Paste'粘貼標(biāo)題行Sheets("Sheet1").Select'選取sheet1,sheet1為學(xué)生成績(jī)信息表Rows(i+1).Select'選取學(xué)生成績(jī)行Selection.Copy'復(fù)制學(xué)生成績(jī)行Sheets("Sheet2").Select'選取sheet2,sheet2為要打印的帶標(biāo)題行的學(xué)生成績(jī)表Rows(i*2).Select'選取第2、4、6、8、10……行ActiveSheet.Paste'粘貼成績(jī)行NextEndSub以上代碼中,dim代表聲明一個(gè)變量,Integer代表這個(gè)變量是一個(gè)整型變量;Sheets對(duì)象代表指定工作簿的工作表;Rows對(duì)象代表指定工作表中的行;Copy將指定對(duì)象復(fù)制到剪貼板;Paste將剪貼板中的內(nèi)容粘貼到工作表的指定位置上;ActiveSheet返回一個(gè)對(duì)象,該對(duì)象代表活動(dòng)工作簿中的活動(dòng)工作表(最上面的工作表)。Fornext語句是循環(huán)語句,i是循環(huán)變量,它可以從一個(gè)值變到另外一個(gè)值,這種變化的兩個(gè)相鄰數(shù)值之間的差值由步長(zhǎng)決定,這里默認(rèn)為1,由此可以決定循環(huán)的次數(shù)。因?yàn)檫@里初始值為1,終值為100,所以從1到100一共循環(huán)100次,就是進(jìn)行100次操作。編輯好這個(gè)宏后,以后要用到相同的設(shè)置,只要選擇工具—>宏—>宏,運(yùn)行這個(gè)宏,瞬間就完成了操作。如果學(xué)生的人數(shù)不一樣,只要將100改變?yōu)樾枰臄?shù)就行了。也許有的讀者說,這個(gè)應(yīng)用是方便,在實(shí)際工作中有時(shí)要用到兩次考試成績(jī)比較的成績(jī)單(如表3),怎樣用ExcelVBA來實(shí)現(xiàn)呢?那么,下面我們就把上面的程序代碼改進(jìn)一下。(二).Excel中打印兩次成績(jī)比較成績(jī)單:表3如表3,標(biāo)題行下面有兩次考試成績(jī)的分?jǐn)?shù),這樣兩次考試成績(jī)一目了然,便于掌握學(xué)生的學(xué)習(xí)情況。這就需要先在成績(jī)表中做一些基礎(chǔ)工作,成績(jī)表中有三個(gè)工作表,月考成績(jī)表、期中成績(jī)表、比較成績(jī)表,其中月考成績(jī)表和期中成績(jī)表的學(xué)生順序要相同,這一點(diǎn)非常重要,否則生成的比較成績(jī)表學(xué)生成績(jī)是錯(cuò)的。排序可以用學(xué)號(hào)排序,也可以用姓名排序。下面是完整的VBA代碼:Sub完善成績(jī)單比較版()DimiAsInteger'定義一個(gè)變量Fori=1To100'循環(huán)100次,實(shí)際應(yīng)用中要改為學(xué)生數(shù)Sheets("月考").Select'選取月考表,月考表為學(xué)生第一次考試成績(jī)表Rows("1:1").Select'選取標(biāo)題行Selection.Copy'復(fù)制標(biāo)題行Sheets("比較").Select'選取比較表,比較表為兩次考試成績(jī)合并的成績(jī)表Rows(3*i-2).Select'選取第1、3、5、7、9……行ActiveSheet.Paste'粘貼標(biāo)題行Sheets("月考").Select'選取月考表,月考表為學(xué)生第一次考試成績(jī)表Rows(i+1).Select'選取學(xué)生成績(jī)行Selection.Copy'復(fù)制學(xué)生成績(jī)行Sheets("比較").Select'選取比較表,比較表為兩次考試成績(jī)合并的成績(jī)表Rows(3*i-1).Select'選取第2、4、6、8、10……行ActiveSheet.Paste'粘貼成績(jī)行Sheets("期中").Select'選取期中表,期中表為學(xué)生第二次考試成績(jī)表Rows(i+1).Select'選取學(xué)生成績(jī)行Selection.Copy'復(fù)制學(xué)生成績(jī)行Sheets("比較").Select'選取比較表,比較表為兩次考試成績(jī)合并的成績(jī)表Rows(3*i).Select'選取第2、4、6、8、10……行ActiveSheet.Paste'粘貼成績(jī)行NextEndSub以上代碼的原理是,先復(fù)制第一次考試的成績(jī)表標(biāo)題行,粘貼到空表中,再依次復(fù)制每位學(xué)生的第一次考試成績(jī)和第二次的考試成績(jī),按順序粘貼到空表中,這樣每位學(xué)生的兩次考試成績(jī)就合并到一張表里了。這樣比較學(xué)生的學(xué)習(xí)情況就一目了然。其實(shí),不光是Excel,在Word、PowerPoint中都可以用VBA和宏來完成許多簡(jiǎn)單重復(fù)性的工作,如果有編程基礎(chǔ)的話,還可以實(shí)現(xiàn)許多有用的功能,這里就不再詳述了。二.總結(jié):以上,只是Office自動(dòng)化處理在實(shí)際工作中的幾個(gè)簡(jiǎn)單的應(yīng)用,下面對(duì)VBA做一個(gè)簡(jiǎn)單的總結(jié)和概括:VBA究竟是什么?更確切地講,它是VisualBasic程序設(shè)計(jì)語言和VisualBasic編輯器中的開發(fā)工具緊密地與應(yīng)用程序集成在一起,集成的應(yīng)用程序包括Word、Excel和PowerPoint等的編程環(huán)境。主要功能歸納為:1.定制VBA允許我們賦予自己喜歡的程序以新的功能,并且能夠讓它們完成一系列相同而又復(fù)雜的工作。2.自動(dòng)化VBA可以使常用的Word、Exce

溫馨提示

  • 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)論