




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8周.自動化處理-程序設計基礎(1)南京大學計算機基礎教學部1宏的概念宏是用戶用VBA程序設計語言編寫或錄制的程序,其中保存有一系列Excel的命令,可以被多次重復使用。宏可以自動執(zhí)行復雜的任務,減少完成任務所需的步驟。VBA即VisualBasicforApplications,它是VisualBasic的一個派生體,它有針對性地對VisualBasic進行了優(yōu)化和設置。兩者的主要區(qū)別在于:VisualBasic開發(fā)的應用程序可以獨立在Windows系統(tǒng)中運行,而用VBA開發(fā)的程序只能在提供它的應用程序中運行。在Excel中,可以用Excel提供的宏錄制工具錄制宏程序,也可以使用它提供的“VisualBasic編輯器”直接編寫宏。需要啟用宏。南京大學計算機基礎教學部2錄制宏選擇“開發(fā)工具”-“宏”-“錄制新宏”。出現一個錄制宏對話框。錄制宏保存宏宏命名:宏名可以包含字母,數字和下劃線,但是第一個字必須是字母(譯者:中文亦可,建議用英文)。Excel讓你可以將宏保存在三個地方:個人宏工作簿新工作簿當前工作簿南京大學計算機基礎教學部3VBAVisualBasicForApplication(VBA)--------微軟開發(fā)出來的應用程序共享一種通用的自動化語言。VBA和VB的區(qū)別包括如下幾個方面:VB是設計用于創(chuàng)建標準的應用程序,而VBA是使已有的應用程序(EXCEL等)自動化VB具有自己的開發(fā)環(huán)境,而VBA必須寄生于已有的應用程序.要運行VB開發(fā)的應用程序,用戶不必安裝VB,因為VB開發(fā)出的應用程序是可執(zhí)行文件(*.EXE),而VBA開發(fā)的程序必須依賴于它的"父"應用程序,例如EXCEL.南京大學計算機基礎教學部4VBA主要應用場景自動執(zhí)行重復的操作進行復雜的數據對比生成報表和圖表個性化用戶界面OFFICE組件的協(xié)同EXCEL二次開發(fā)南京大學計算機基礎教學部5VBA語法常量數據類型變量定義控制結構過程和函數定義南京大學計算機基礎教學部6標識符標識符是一種標識變量、常量、過程、函數、類等語言構成單位的符號,利用它可以完成對變量、常量、過程、函數、類等的引用。命名規(guī)則字母打頭,由字母、數字和下劃線組成,如A987b_23Abc不能與VB保留字重名,如public,private,dim,goto,next,with,integer,single等南京大學計算機基礎教學部7VBA數據類型南京大學計算機基礎教學部8數據類型存儲空間類型符數據范圍Byte1字節(jié)0~255Boolean2字節(jié)True或falseInteger2字節(jié)%-32768~32767Long4字節(jié)&-2147483648~2147483647Single4字節(jié)!負數:-3.402823E38~-1.401298E-45正數:1.401298E-45~3.402823E38Double8字節(jié)#負數:1.79769313486232E308~-4.94065645841247E-324正數:4.94065645841247E-324~1.79769313486232E308Currency8字節(jié)@-922337203685477.5808~922337203685477.5807Date8字節(jié)0100年1月1日到9999年12月31日Object4字節(jié)任何對象引用String字符長度$分為定長和可變長度兩種,可變長可達0~20億個字符,定長最多65536個字符Variant(數字)16字節(jié)任何數字,最大達到double的數值范圍Variant(字符)22+字符串長度約0~20億VBA數據類型南京大學計算機基礎教學部9變量定義基礎你可以使用關鍵字Dim來聲明局部變量,Dim代表“Dimension”。關鍵字Dim后面緊跟變量名稱,再后面就是數據類型。員工的生日DimDateOfBirthAsDate員工的年齡:DimAgeAsInteger員工姓名:DimFullNameAsString南京大學計算機基礎教學部10變量和常量變量的定義Dim 變量as類型'定義為局部變量,如Dim xyzasintegerPrivate變量as類型'定義為私有變量,如PrivatexyzasbytePublic 變量as類型'定義為公有變量,如PublicxyzassingleGlobal變量as類型'定義為全局變量,如Globalxyzasdate常量的定義常量為變量的一種特例,用Const定義,且定義時賦值,程序中不能改變值,作用域也如同變量作用域。如下定義:ConstpiAsSingle=3.1415926南京大學計算機基礎教學部11隱式聲明變量沒有用Dim語句來明確聲明的變量叫做隱式聲明。這些變量自動會被分配一個數據類型Variant。它們可以保存數字,字符串和其它信息類型。你可以通過在你VBA程序的任何地方,簡單地賦值給一個變量名稱來創(chuàng)建一個變量。例如,你可以按下述方式來隱式聲明變量:DaysLeft=100南京大學計算機基礎教學部12VBA運算符數學運算符:^(指數)、-(負號)、*(乘)/(除)、\(整除)、Mod(取余)、+(加)-(減)、&關系運算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is邏輯運算符Not(非)、And(與)、Or(或)、Xor(異或)、Eqv(相等)、Imp(隱含)賦值運算符=南京大學計算機基礎教學部13注釋注釋語句是用來說明程序中某些語句的功能和作用;VBA中有兩種方法標識為注釋語句。單引號’;如:’定義全局變量;可以位于別的語句之尾,也可單獨一行Rem;如:Rem定義全局變量;只能單獨一行南京大學計算機基礎教學部14書寫規(guī)范VBA不區(qū)分標識符的字母大小寫,一律認為是小寫字母;一行可以書寫多條語句,各語句之間以冒號:分開;一條語句可以多行書寫,以空格加下劃線_來標識下行為續(xù)行;南京大學計算機基礎教學部15Dima%,b%,c%:a=1:b=2:c=3Application.workbooks(“book1”).worksheets(“sheet1”)_Range(“A1:D100”).Font.Bold=TrueRange對象單個單元格或多個單元格組成的區(qū)域;可以連續(xù)也可以不連續(xù)可以跨工作表南京大學計算機基礎教學部16表示單個單元格對象使用“[單元格名稱]”形式[C5]使用Cells屬性,Cells(RowIndex,ColumnIndex)Cells(5,3)Cells(5,”C”)使用Range(單元格名稱)形式Range(“C5”)Range(“C”&“5”)南京大學計算機基礎教學部17表示當前活動單元格區(qū)域當前活動單元格ActiveCellMsgboxActiveCell.valueMsgBoxActiveCell.RowMsgBoxActiveCell.Column當前選中區(qū)域SelectionMsgBoxSelection.Rows.Count南京大學計算機基礎教學部18Offset屬性基于開始選擇的單元格,Offset屬性使用兩個自變量來獲得新單元格區(qū)域的地址,第一個自變量表示行偏移,第二個自變量則表示列偏移。南京大學計算機基礎教學部19VBA操作立即窗口輸入選擇單元格A1下面一行和右邊三列的單元格Range("A1").Offset(1,3).Select選擇單元格D15上面兩行和左邊一列的單元格Range("D15").Offset(-2,-1).Select選擇當前單元格上面一行的單元格(同列)ActiveCell.Offset(-1,0).SelectVBA條件語句(選擇結構)If...Then...Else語句SelectCase語句南京大學計算機基礎教學部20If...Then...Else語句單行形式:IfconditionThen[statements][Elseelsestatements]例如:Ifsalary>1500Thentaxrate=0.1Elsetaxrate=0.05IfA>10ThenA=A+1:B=B+A:C=C+B南京大學計算機基礎教學部21If...Then...Else語句語句塊形式IfconditionThen [statements][ElseIfcondition-nThen [elseifstatements]...[Else [elsestatements]]EndIf南京大學計算機基礎教學部22例如:Ifsalary<3500then taxrate=0Elseifsalary<5000then taxrate=0.03Elseifsalary<8000then taxrate=0.1Else taxrate=0.2EndifSelectCase語句語法形式:SelectCasetestexpression[Caseexpressionlist-n [statements-n]]...[CaseElse [elsestatements]]EndSelect南京大學計算機基礎教學部23例如:SelectCasePidCase“A101” Price=200Case“A102” Price=300CaseElse Price=900EndSelect條件語句練習按照稅率計算所得稅南京大學計算機基礎教學部24收入稅率[0,3500)0[3500,5000]0.03(5000,8000]0.1(8000,15000]0.2(15000,30000]0.3>300000.45VBA循環(huán)語句For...Next語句Do...Loop語句While...Wend語句南京大學計算機基礎教學部25For...Next語句語法形式:Forcounter=startToend[Stepstep] [statements] [ExitFor] [statements]Next[counter]南京大學計算機基礎教學部26例如:iSum=0Fori=1to10 iSum=iSum+iNextForEach…Next主要功能是對一個數組或集合對象進行,讓所有元素重復執(zhí)行一次語句ForEachelementIngroup Statements [Exitfor] StatementsNext[element]南京大學計算機基礎教學部27例如:ForEachrang2Inrange1 Werior .colorindex=6 .pattern=xlSolid EndwithNextDo...Loop語句語法形式1:Do[{While|Until}condition] [statements] [ExitDo] [statements]Loop南京大學計算機基礎教學部28例如:iSum=0:i=1DoUntili>10 iSum=iSum+i i=i+1LoopDo...Loop語句語法形式2:Do [statements] [ExitDo] [statements]Loop[{While|Until}condition]南京大學計算機基礎教學部29While...Wend語句語法形式:Whilecondition [statements]Wend例如:
iSum=0:i=1 Whilei<11 iSum=iSum+i i=i+1 Wend南京大學計算機基礎教學部30VBA過程過程是構成程序的一個模塊,往往用來完成一個相對獨立的功能。過程可以使程序更清晰、更具結構性。VBA具有四種過程:Sub過程Function函數Property屬性過程Event事件過程。南京大學計算機基礎教學部31Sub過程執(zhí)行一些有用的任務但是不返回任何值。它們以關鍵字Sub開頭和關鍵字EndSub結束。南京大學計算機基礎教學部32Submytest()MsgBox"hello"EndSubFunction過程執(zhí)行具體任務并返回值。它們以關鍵字Function開頭和關鍵字EndFunction結束。南京大學計算機基礎教學部33PublicFunctionSumItUp(m,n) SumItUp=m+nEndFunction明確函數返回值的類型FunctionMultiplyIt(num1,num2)AsInteger MultiplyIt=num1*num2EndFunction南京大學計算機基礎教學部34函數的參數傳遞方式-傳值在一些過程中,當你將參數作為變量傳遞時,VB可能突然改變該變量的數值。要確保該被調函數不改變傳遞的參數值,你應該在函數聲明行在參數名稱之前加上關鍵字ByVal。南京大學計算機基礎教學部35FunctionMyAverage(ByValnum1,ByValnum2,ByValnum3) num1=num1+1 MyAverage=(num1+num2+num3)/3EndFunction函數的參數傳遞方式-傳地址VB默認地按地址(關鍵字ByRef)給函數過程(或子程序)傳遞信息,引用函數被調用時,函數參數明確的數據。因此,如果函數改變了參數值,原始的數值就被改變了。南京大學計算機基礎教學部36函數的參數傳遞方式-傳地址南京大學計算機基礎教學部37FunctionMyAverage(ByRefnum1,ByValnum2,ByValnum3) num1=num1+1 MyAverage=(num1+num2+num3)/3EndFunctionSubThreeNumbers()Dimnum1AsInteger,num2AsInteger,num3AsIntegernum1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基因組轉錄組聯(lián)合多組學數據整合分析-洞察闡釋
- 綜合醫(yī)院急診科預檢分診流程
- 老年護理轉院制度及流程探討
- 某年度太陽能用石英玻璃材料戰(zhàn)略市場規(guī)劃報告
- 電商平臺品牌授權合作合同
- 住宅物業(yè)管理的關鍵崗位職責
- 正規(guī)企業(yè)工作背景證明(8篇)
- 高考生物二輪復習(全國版) 第1篇 專題突破 專題8 專題強化練
- 重陽節(jié)作文簡單范文(12篇)
- 2025年蠟變羊皮革項目市場調查研究報告
- 施工鋼結構制作安裝環(huán)境因素識別表
- 污水井巡查記錄表
- 2關于更換現場項目經理的函
- 部編版小學道德與法治四年級下冊期末復習簡答及分析題專練(含答案)
- 電子商務那些事學習通超星課后章節(jié)答案期末考試題庫2023年
- 環(huán)境及理化因素損傷-凍傷
- Unit7SeasonPartALetslearn(教學設計)閩教版英語四年級下冊
- 世界文化遺產武當山古建筑群的資料
- 醫(yī)院醫(yī)療設備采購項目HIS系統(tǒng)及硬件采購投標文件
- 【橡膠工藝】-橡膠產品生產工藝規(guī)程
- 推銷實戰(zhàn)技巧與客戶優(yōu)秀服務技巧
評論
0/150
提交評論