



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE1第3頁共5頁利用ExcelVBA生成學生成績單摘要:本文用兩個實例來介紹如何利用MS-OfficeExcel中的編程功能來實現自動化處理學生成績單,使我們輕松的完成打印學生成績單的工作,并在其中穿插介紹一些VBA編程知識。本文首先,簡單的介紹了VBA的開發環境,其中本文只對用到的知識進行了介紹,如需詳細內容請查閱VisualBasic程序設計書籍。然后,分別詳介了VBA在Excel中的應用,在應用實例中,本文采用了先提出問題,后錄制宏,再分析整理宏的方法,來介紹VBA在Excel中的應用,并且都給出了完整的程序代碼,以方便讀者使用。關鍵字:ExcelVBA宏代碼當今是信息技術飛速發展的時代,人們日常工作、生活的方方面面都在運用信息技術,享受著信息技術給我們帶來的便利,現在雖不是微軟大旗一統天下,但在日常工作和生活中MS-Office仍然是人們運用最多、最廣的辦公軟件。而在MS-Office中尤其以Word、Excel、PowerPoint的使用率最高,人們對這些軟件的運用程度直接影響著工作的效率,本文以Excel為例,來介紹如何利用Excel中的VBA功能來實現自動化處理學生成績單,使我們輕松的完成許多日常工作。在MS-Office中VBA(VisualBasicforApplications)是一種新的功能強大的宏語言,宏其實是指示Word、Excel、PowerPoint等執行功能的指令集合,在Excel中通過使用錄制宏命令你能錄制新宏,而且可以對已經錄制的宏進行編輯修改,你一但學會如何在Excel中錄制和編輯宏,你就掌握了許多在其它應用程序中使用宏所需要的編程技術,也就是說在其它程序中使用VBA。一般情況下你所建立的宏應該適用于同一類的文件,而且對這類文件能夠完成一些通用性的設置工作。一.ExcelVBA應用(一).Excel中打印帶標題的學生成績單:在學校,學生的成績單一般都用Excel來統計打印,因為Excel中提供了大量的公式和函數,方便進行各種計算。但到了設置打印學生個人成績條時,就出現了問題,因為成績單只有一個標題行,不能讓每個學生的成績條都有標題行(如表1)。表1表2通過比較以上兩個表格,我們看出表2每個學生的成績條都有標題行,下面我們就介紹如何輕松制作這樣的表格。因為在Excel中學生的成績是從第二行開始連續存放的,當打印出來以后,只有第一個學生的成績條中有標題行,而下面的學生只能看到數字,而不清楚這個數字是什么科目,解決這個問題,我們可以用復制粘貼的方法,將第一行的標題行復制到每一個學生成績行的上方,但是這個工作量是可想而知的,如果貴校有1000名學生,那你豈不是要復制粘貼1000次,如果學生數更多……(又要加班)下面我們來用剛才介紹的VBA來簡化這一操作。在Excel中VBA的用法是,利用錄制宏的方法來實現,先取得在Excel中這些復制粘貼操作的宏代碼,再選擇其中對我們有用的代碼來構成我們需要的程序。1.操作要求:在空白的工作表sheet2中按順序粘貼成績表sheet1的標題行和第一個學生的成績行。2.錄制宏:打開成績文件,執行菜單中的“工具—>宏—>錄制新宏”,在sheet2工作表中按順序粘貼標題行和第一個學生的成績行,停止錄制。再執行菜單中的“工具—>宏—>宏”對宏進行編輯分析和整理,如下:Sheets("Sheet1").Select'選取sheet1工作表Rows("1:1").Select'代表選定當前工作表中的行,括號中的是行參數,這里是標題行Selection.Copy'返回當前窗口中的選定對象,將選定的內容復制Sheets("Sheet2").Select'選取sheet2工作表Rows("1:1").Select'選定要粘貼的位置ActiveSheet.Paste'粘貼標題行Sheets("Sheet1").Select'選取sheet1工作表Rows("2:2").Select'選取成績行(第一名學生)Selection.Copy'復制成績行Sheets("Sheet2").Select'選取sheet2工作表Rows("2:2").Select'選定要粘貼的位置ActiveSheet.Paste'粘貼成績行(第一名學生)通過上述代碼,我們可以看出其工作原理是:先選取標題行,再復制標題行,然后選取要插入行的位置,再粘貼標題行,成績行也是相同的操作。如此循環,一直到最后一個學生的成績行粘貼好就完成了操作。3.分析整理代碼:以上原理明白后,我們用程序實現這一過程,這個程序分為兩部分,一部分用于實現將標題行粘貼到工作表sheet2的第1、3、5、7、9……行,另一部分用于實現將學生成績行信息逐條粘貼到第2、4、6、8、10……行,以100名學生為例,代碼如下:Sub完善成績單()dimiasInteger'定義一個變量fori=1to100'循環100次,實際應用中要改為學生數Sheets("Sheet1").Select'選取sheet1,sheet1為學生成績信息表Rows("1:1").Select'選取標題行Selection.Copy'復制標題行Sheets("Sheet2").Select'選取sheet2,sheet2為要打印的帶標題行的學生成績表Rows(i*2-1).Select'選取第1、3、5、7、9……行ActiveSheet.Paste'粘貼標題行Sheets("Sheet1").Select'選取sheet1,sheet1為學生成績信息表Rows(i+1).Select'選取學生成績行Selection.Copy'復制學生成績行Sheets("Sheet2").Select'選取sheet2,sheet2為要打印的帶標題行的學生成績表Rows(i*2).Select'選取第2、4、6、8、10……行ActiveSheet.Paste'粘貼成績行NextEndSub以上代碼中,dim代表聲明一個變量,Integer代表這個變量是一個整型變量;Sheets對象代表指定工作簿的工作表;Rows對象代表指定工作表中的行;Copy將指定對象復制到剪貼板;Paste將剪貼板中的內容粘貼到工作表的指定位置上;ActiveSheet返回一個對象,該對象代表活動工作簿中的活動工作表(最上面的工作表)。Fornext語句是循環語句,i是循環變量,它可以從一個值變到另外一個值,這種變化的兩個相鄰數值之間的差值由步長決定,這里默認為1,由此可以決定循環的次數。因為這里初始值為1,終值為100,所以從1到100一共循環100次,就是進行100次操作。編輯好這個宏后,以后要用到相同的設置,只要選擇工具—>宏—>宏,運行這個宏,瞬間就完成了操作。如果學生的人數不一樣,只要將100改變為需要的數就行了。也許有的讀者說,這個應用是方便,在實際工作中有時要用到兩次考試成績比較的成績單(如表3),怎樣用ExcelVBA來實現呢?那么,下面我們就把上面的程序代碼改進一下。(二).Excel中打印兩次成績比較成績單:表3如表3,標題行下面有兩次考試成績的分數,這樣兩次考試成績一目了然,便于掌握學生的學習情況。這就需要先在成績表中做一些基礎工作,成績表中有三個工作表,月考成績表、期中成績表、比較成績表,其中月考成績表和期中成績表的學生順序要相同,這一點非常重要,否則生成的比較成績表學生成績是錯的。排序可以用學號排序,也可以用姓名排序。下面是完整的VBA代碼:Sub完善成績單比較版()DimiAsInteger'定義一個變量Fori=1To100'循環100次,實際應用中要改為學生數Sheets("月考").Select'選取月考表,月考表為學生第一次考試成績表Rows("1:1").Select'選取標題行Selection.Copy'復制標題行Sheets("比較").Select'選取比較表,比較表為兩次考試成績合并的成績表Rows(3*i-2).Select'選取第1、3、5、7、9……行ActiveSheet.Paste'粘貼標題行Sheets("月考").Select'選取月考表,月考表為學生第一次考試成績表Rows(i+1).Select'選取學生成績行Selection.Copy'復制學生成績行Sheets("比較").Select'選取比較表,比較表為兩次考試成績合并的成績表Rows(3*i-1).Select'選取第2、4、6、8、10……行ActiveSheet.Paste'粘貼成績行Sheets("期中").Select'選取期中表,期中表為學生第二次考試成績表Rows(i+1).Select'選取學生成績行Selection.Copy'復制學生成績行Sheets("比較").Select'選取比較表,比較表為兩次考試成績合并的成績表Rows(3*i).Select'選取第2、4、6、8、10……行ActiveSheet.Paste'粘貼成績行NextEndSub以上代碼的原理是,先復制第一次考試的成績表標題行,粘貼到空表中,再依次復制每位學生的第一次考試成績和第二次的考試成績,按順序粘貼到空表中,這樣每位學生的兩次考試成績就合并到一張表里了。這樣比較學生的學習情況就一目了然。其實,不光是Excel,在Word、PowerPoint中都可以用VBA和宏來完成許多簡單重復性的工作,如果有編程基礎的話,還可以實現許多有用的功能,這里就不再詳述了。二.總結:以上,只是Office自動化處理在實際工作中的幾個簡單的應用,下面對VBA做一個簡單的總結和概括:VBA究竟是什么?更確切地講,它是VisualBasic程序設計語言和VisualBasic編輯器中的開發工具緊密地與應用程序集成在一起,集成的應用程序包括Word、Excel和PowerPoint等的編程環境。主要功能歸納為:1.定制VBA允許我們賦予自己喜歡的程序以新的功能,并且能夠讓它們完成一系列相同而又復雜的工作。2.自動化VBA可以使常用的Word、Exce
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃設備包清工合同樣本
- 工業機器人技術與應用模擬習題與答案
- 植物學習題庫含答案
- 線上升國旗課件
- 水電工程承包合作合同
- 2024年2月份暗物質探測器共有權分割技術標準協議
- 機電安裝工程合同補充條款范本
- 肩關節鏡手術護理
- 給排水工程承包合同范本
- 2024年3月份墻體廣告動態紫外線消毒集成協議
- 日常保安服務投標技術方案(技術標)
- 行政復議法-形考作業1-國開(ZJ)-參考資料
- 中國軍事武器
- 八年級語文(完整版)標點符號及使用練習題及答案
- 金屬非金屬地下礦山人員定位系統建設規范
- 中考語文專題復習十議論性文本閱讀市賽課公開課一等獎省名師獲獎課件
- 噴塑車間安全培訓
- 2024活躍用戶研究報告(小紅書平臺)-千瓜-202404
- 市場營銷策劃(本)-形考任務二(第五~七章)-國開(CQ)-參考資料
- 2024年煤礦探放水考試題庫附答案
- 技能成才強國有我
評論
0/150
提交評論