版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VBA語言基礎(chǔ)簡介(VisualBasicApplication)這里只做一些vba最基本的介紹,好多函數(shù),過程的詳細(xì)使用不可能一一說明,同學(xué)們參照vba函數(shù)速查手冊(cè)第一節(jié)表記符一.定義表記符是一種表記變量、常量、過程、函數(shù)、類等語言組成單位的符號(hào),利用它能夠達(dá)成對(duì)變量、常量、過程、函數(shù)、類等的引用。二.命名規(guī)則1)字母打頭,由字母、數(shù)字和下劃線組成,如A987b_23Abc2)字符長度小于403)不能與VB保存字重名,如public,private,dim,goto,next,with,integer,single等第二節(jié)運(yùn)算符定義:運(yùn)算符是代表VB某種運(yùn)算功能的符號(hào)。1)賦值運(yùn)算符=2)數(shù)學(xué)運(yùn)算符&、+(字符連結(jié)符)、+(加)、-(減)、Mod(取余)、(整除)、*(乘)、/(除)、-(負(fù)號(hào))、^(指數(shù))3)邏輯運(yùn)算符Not(非)、And(與)、Or(或)、Xor(異或)、Eqv(相等)、Imp(隱含)4)關(guān)系運(yùn)算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is5)位運(yùn)算符(暫時(shí)可不看位運(yùn)算)Not(邏輯非)、And(邏輯與)、Or(邏輯或)、Xor(邏輯異或)、Eqv(邏輯等)、Imp(隱含)第三節(jié)數(shù)據(jù)種類VBA共有12種數(shù)據(jù)種類,詳細(xì)見下表,其他用戶還能夠根據(jù)以下種類用Type自定義數(shù)據(jù)種類。數(shù)據(jù)種類種類表記符字節(jié)字符串型String$字符長度(0-65400)字節(jié)型Byte無1布爾型Boolean無2整數(shù)型Integer%2長整數(shù)型Long&4單精度型Single!4雙精度型Double#8日期型Date無8公元100/1/1-9999/12/31錢幣型Currency@8小數(shù)點(diǎn)型Decimal無14變體型Variant無以上隨意種類,可變對(duì)象型Object無4第四節(jié)變量與常量1)VBA允許使用未定義的變量,默認(rèn)是變體變量。2)在模塊通用說明部份,加入OptionExplicit語句能夠強(qiáng)迫用戶進(jìn)行變量定義。3)變量定義語句及變量作用域Dim變量as種類'定義為局部變量,如DimxyzasintegerPrivate變量as種類'定義為私有變量,如PrivatexyzasbytePublic變量as種類'定義為公有變量,如PublicxyzassingleGlobal變量as種類'定義為全局變量,如GloblalxyzasdateStatic變量as種類'定義為靜態(tài)變量,如Staticxyzasdouble一般變量作用域的原則是,那部份定義就在那部份起作用,模塊中定義則在該模塊那作用。4)常量為變量的一種特例,用Const定義,且定義時(shí)賦值,程序中不能改變值,作用域也好像變量作用域。如下定義:ConstPi=第五節(jié)數(shù)組數(shù)組是包含相同數(shù)據(jù)種類的一組變量的會(huì)合,對(duì)數(shù)組中的單個(gè)變量引用經(jīng)過數(shù)組索引下標(biāo)進(jìn)行。在內(nèi)存中表現(xiàn)為一個(gè)連續(xù)的內(nèi)存塊,必須用Global或Dim語句來定義。定義規(guī)則如下:Dim數(shù)組名([lowerto]upper[,[lowerto]upper,.])astype;Lower缺省值為0。二維數(shù)組是按隊(duì)列排列,如DimX(9)asString聲了然一個(gè)10個(gè)元素的數(shù)組,X(0)~X(9),如果沒有指定lower,則默認(rèn)lower=0。再比如DimMyArray(10,10)AsInteger,是個(gè)11*11整數(shù)數(shù)組除了以上固定數(shù)組外,VBA還有一種功能強(qiáng)大的動(dòng)向數(shù)組,定義時(shí)無大小維數(shù)聲明;在程序中再利用Redim語句來從頭改變數(shù)組大小,原來數(shù)組內(nèi)容能夠經(jīng)過加preserve重點(diǎn)字來保存。如下例:Dimarray1( )asdouble:Redimarray1(5):array1(3)=250:Redimpreservearray1(5,10)第六節(jié)說明和賦值語句1)說明語句是用來說明程序中某些語句的功能和作用,說明語句不會(huì)被履行;VBA中有兩種方法表記為說明語句。單引號(hào)’;如:’定義全局變量;能夠位于其他語句之尾,也可單唯一行Rem;如:Rem定義全局變量;只能單唯一行2)賦值語句是進(jìn)行對(duì)變量或?qū)ο髮傩再x值的語句,采用賦值號(hào)=,如X=123:=”我的窗口”對(duì)對(duì)象的賦值采用:setmyobject=object或myobject:=object第七節(jié)書寫規(guī)范1)VBA不劃分表記符的字母大小寫,一律認(rèn)為是小寫字母;2)最好以行只寫一條語句。一行能夠書寫多條語句,各語句之間以冒號(hào):分開;3)一條語句能夠多行書寫,以空格加下劃線_來表記下行為續(xù)行;4)表記符最好能簡短了然,不造成歧義。第八節(jié)判斷語句1)IfThenElse語句IfconditionThen[statements][Elseelsestatements]condition是個(gè)判斷條件,當(dāng)condition為真True,就履行Then后邊的statements那些語句,如果為假False,履行elsestatements語句如1:IfA>BAndC<DThenA=B+2ElseA=C+2如2:Ifx>250Thenx=x-100或許,能夠使用塊形式的語法,即IfThenElse語句能夠嵌套:IfconditionThen[statements][ElseIfcondition-nThen[elseifstatements]...[Else[elsestatements]]EndIf如1:IfNumber<10ThenDigits=1ElseIfNumber<100ThenDigits=2ElseDigits=3EndIf2)SelectCaseCaseEndCase語句如1:Pid的取值來決定履行不同的語句SelectCasePidCase“A101”Price=200‘當(dāng)Pid的實(shí)際值是“A101”,就履行Price=200.后邊的以此類推Case“A102”Price=300CaseElsePrice=900EndCase第九節(jié)循環(huán)語句1)ForNext語句以指定次數(shù)來重復(fù)履行一組語句Forcounter=startToend[Stepstep]'step缺省值為1[statements][ExitFor][statements]Next[counter]如1:for語句也能夠嵌套,如下,兩重for循環(huán)ForWords=10To1Step-1
'成立
10次循環(huán)ForChars=0To9
'成立
10次循環(huán)MyString=MyString&Chars
'將數(shù)字增添到字符串中NextChars
'IncrementcounterMyString=MyString&""
'增添一個(gè)空格NextWords2)ForEachNext語句主要功能是對(duì)一個(gè)數(shù)組或會(huì)合對(duì)象進(jìn)行,讓所有元素重復(fù)執(zhí)行一次語句其作用就是遍歷一遍數(shù)組或會(huì)合對(duì)象中的所有元素ForEachelementIngroup‘group必要參數(shù)。對(duì)象會(huì)合或數(shù)組的名稱(用戶定義種類的數(shù)組除外)。Statements[Exitfor]StatementsNext[element]如1:ForEachrang2Inrange1.colorindex=6.pattern=xlSolidEndwithNext這上面一例中用到了WithEndWith語句,目的是省去對(duì)象多次調(diào)用,加迅速度;語法為:Withobject[statements]EndWith3)Doloop語句在條件為true時(shí),重復(fù)履行區(qū)塊命令Do{while|until}condition'while為當(dāng)型循環(huán),until為直到型循環(huán),顧名思義,不多說啦StatementsExitdoStatementsLoop或許使用下面語法Do'先do再判斷,即無論怎樣先干一次再說StatementsExitdoStatementsLoop{while|until}condition4)whilewend語句,只需條件為TRUE,循環(huán)就履行如下例:whilecondition‘whileI<50[statements]‘I=I+1wend第十節(jié)其他類語句和錯(cuò)誤語句辦理這節(jié)能夠省略,感興趣的話能夠看看一.其他循環(huán)語句構(gòu)造化程序使用以上判斷和循環(huán)語句已經(jīng)足夠,建議不要輕易使用下面的語句,雖然VBA還支持。1)Gotoline該語句為跳轉(zhuǎn)到line語句行2)Onexpressiongosubdestinatioinlist或許onexpressiongotodestinationlist語句為根據(jù)exprssion表達(dá)式值來跳轉(zhuǎn)到所要的行號(hào)或行標(biāo)記3)GosublinelineReturn語句,Return返回到Gosubline行,如下例:Subgosubtry( )DimnumNum=inputbox(“輸入一個(gè)數(shù)字,此值將會(huì)被判斷循環(huán)”)Ifnum>0thenGosubRoutine1::ExitsubRoutine1:Num=num/5ReturnEndsub‘Wend二.錯(cuò)誤語句辦理履行階段有時(shí)會(huì)有錯(cuò)誤的情況發(fā)生,利用OnError語句來辦理錯(cuò)誤,啟動(dòng)一個(gè)錯(cuò)誤的辦理程序。語法如下:OnErrorGotoLine‘當(dāng)錯(cuò)誤發(fā)生時(shí),會(huì)立刻轉(zhuǎn)移到line行去OnErrorResumeNext‘當(dāng)錯(cuò)誤發(fā)生時(shí),會(huì)立刻轉(zhuǎn)移到發(fā)生錯(cuò)誤的下一行去OnErroGoto0‘當(dāng)錯(cuò)誤發(fā)生時(shí),會(huì)立刻停止過程中任何錯(cuò)誤辦理過程第十一節(jié)過程和函數(shù)過程是組成程序的一個(gè)模塊,往往用來達(dá)成一個(gè)相對(duì)獨(dú)立的功能。過程能夠使程序更清晰、更具構(gòu)造性。VBA擁有四種過程:Sub過程、Function函數(shù)、Property屬性過程和Event事件過程。一.Sub過程Sub過程的參數(shù)有兩種傳達(dá)方式:按值傳達(dá)(ByVal)和按地點(diǎn)傳達(dá)(ByRef)。如下例:Subpassword(ByValxasinteger,ByRefyasinteger)Ify=100theny=x+yelsey=x-yx=x+100EndsubSubcall_password( )Dimx1asintegerDimy1asintegerx1=12y1=100Callpassword(x1,y1)
‘調(diào)用過程方式:過程名(參數(shù)1,參數(shù)2);2.過程名參數(shù)1,參數(shù)2,y1‘結(jié)果是12、112,y1按地點(diǎn)傳達(dá)改變了值,而x1按值傳達(dá),未改變?cè)礒ndsub二.Function函數(shù)函數(shù)實(shí)際是實(shí)現(xiàn)一種映射,它經(jīng)過一定的映射規(guī)則,達(dá)成運(yùn)算并返回結(jié)果。參數(shù)傳達(dá)也兩種:按值傳達(dá)(ByVal)和按地點(diǎn)傳達(dá)(ByRef)。如下例:Functionpassword(ByValxasinteger,byrefyasinteger)asbooleanIfy=100theny=x+yelsey=x-yx=x+100ify=150thenpassword=trueelsepassword=falseEndFunctionSubcall_password( )Dimx1asintegerDimy1asintegerx1=12y1=100ifpasswordthen
‘調(diào)用函數(shù):1.作為一個(gè)表達(dá)式放在=右端;2.作為參數(shù)使用endifEndsub三.Property屬性過程和Event事件過程這是VB在對(duì)象功能上增添的兩個(gè)過程,與對(duì)象特點(diǎn)親密有關(guān),也是VBA比較重要組成,技術(shù)比較復(fù)雜,能夠參照有關(guān)書籍。我們的試驗(yàn)不波及這兩部分第十二節(jié)內(nèi)部函數(shù)在VBA程序語言中有很多內(nèi)置函數(shù),能夠幫助程序代碼設(shè)計(jì)和減少代碼的編寫工作。這部分重假如供我們查閱,直接使用的。一般要注意某個(gè)函數(shù)的需要輸入的參數(shù)是什么種類的,函數(shù)的返回值又是什么種類的一.測(cè)試函數(shù)IsNumeric(x)IsDate(x)IsEmpty(x)IsArray(x)IsError(expression)IsNull(expression)IsObject(identifier)
‘是否為數(shù)字,返回Boolean結(jié)果,TrueorFalse‘是否是日期,返回Boolean結(jié)果,TrueorFalse‘是否為Empty,返回Boolean結(jié)果,TrueorFalse‘指出變量是否為一個(gè)數(shù)組?!赋霰磉_(dá)式是否為一個(gè)錯(cuò)誤值‘指出表達(dá)式是否不包含任何有效數(shù)據(jù)(Null)‘指出表記符是否表示對(duì)象變量
。二.?dāng)?shù)學(xué)函數(shù)Sin(X)、Cos(X)、Tan(X)、Atan(x)三角函數(shù),單位為弧度Log(x)返回x的自然對(duì)數(shù)Exp(x)返回exAbs(x)返謝絕對(duì)值Int(number)、Fix(number)都返回參數(shù)的整數(shù)部分,區(qū)別:Int將變換成-9,而Fix將變換成-8Sgn(number)返回一個(gè)Variant(Integer),指出參數(shù)的正負(fù)號(hào)Sqr(number)返回一個(gè)Double,指定參數(shù)的平方根VarType(varname)返回一個(gè)Integer,指出變量的子種類Rnd(x)返回0-1之間的單精度數(shù)據(jù),x為隨機(jī)種子三.字符串函數(shù)Trim(string)去掉string左右兩頭空白Ltrim(string)去掉string左端空白R(shí)trim(string)去掉string右端空白Len(string)計(jì)算string長度Left(string,x)取string左段x個(gè)字符組成的字符串Right(string,x)取string右段x個(gè)字符組成的字符串Mid(string,start,x)取string從start位開始的x個(gè)字符組成的字符串Ucase(string)變換為大寫Lcase(string)變換為小寫Space(x)返回x個(gè)空白的字符串Asc(string)返回一個(gè)integer,代表字符串中首字母的字符代碼Chr(charcode)返回string,其中包含有與指定的字符代碼有關(guān)的字符四.變換函數(shù)CBool(expression)變換為Boolean型CByte(expression)變換為Byte型CCur(expression)變換為Currency型CDate(expression)變換為Date型CDbl(expression)變換為Double型CDec(expression)變換為Decemal型CInt(expression)變換為Integer型CLng(expression)變換為Long型CSng(expression)變換為Single型CStr(expression)變換為String型CVar(expression)變換為Variant型Val(string)變換為數(shù)據(jù)型Str(number)變換為String五.時(shí)間函數(shù)Now返回一個(gè)Varian
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧農(nóng)業(yè)灌溉系統(tǒng)建設(shè)與運(yùn)營管理合同4篇
- 2025年度二零二五版環(huán)保技術(shù)研發(fā)項(xiàng)目保證合同4篇
- 二零二五版二手房買賣合同中的物業(yè)費(fèi)結(jié)算辦法3篇
- 2025年度綜合性消防安全設(shè)施維護(hù)保養(yǎng)服務(wù)協(xié)議4篇
- 2025年智能安置房租賃合同示范文本3篇
- 個(gè)人租車位簡易協(xié)議合同 2篇
- 上海律協(xié)發(fā)布COVID(2024版)
- 個(gè)人勞務(wù)用工合同范本 2篇
- 2025年度池塘漁業(yè)資源增殖放流合作合同3篇
- 2025年度藝術(shù)品代持協(xié)議書3篇
- 2024年全國體育專業(yè)單獨(dú)招生考試數(shù)學(xué)試卷試題真題(含答案)
- 北師大版小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)第五單元《周長》測(cè)試卷(含答案)
- DB45T 1950-2019 對(duì)葉百部生產(chǎn)技術(shù)規(guī)程
- 新修訂《保密法》知識(shí)考試題及答案
- 電工基礎(chǔ)知識(shí)培訓(xùn)課程
- 住宅樓安全性檢測(cè)鑒定方案
- 廣東省潮州市潮安區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末考試數(shù)學(xué)試題
- 市政道路及設(shè)施零星養(yǎng)護(hù)服務(wù)技術(shù)方案(技術(shù)標(biāo))
- 《論語》學(xué)而篇-第一課件
- 《寫美食有方法》課件
- (完整word版)申論寫作格子紙模板
評(píng)論
0/150
提交評(píng)論