版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、VBA語言基礎簡介(Visual Basic Application)這里只做一些vba最基本的介紹,很多函數(shù),過程的具體使用不可能一一說明,同學們參考vba函數(shù)速查手冊第一節(jié) 標識符一定義標識符是一種標識變量、常量、過程、函數(shù)、類等語言構成單位的符號,利用它可以完成對變量、常量、過程、函數(shù)、類等的引用。二命名規(guī)則1) 字母打頭,由字母、數(shù)字和下劃線組成,如 A987b_23Abc2) 字符長度小于403) 不能與VB保留字重名,如public, private, dim, goto, next, with, integer, single等第二節(jié) 運算符定義:運算符是代表VB某種運算功能的符
2、號。1)賦值運算符 =2)數(shù)學運算符 &、+ (字符連接符)、+(加)、-(減)、Mod(取余)、(整除)、*(乘)、/(除)、-(負號)、(指數(shù))3)邏輯運算符Not(非)、And(與)、Or(或)、Xor(異或)、Eqv(相等)、Imp(隱含)4)關系運算符 = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is5)位運算符(暫時可不看位運算) Not(邏輯非)、And(邏輯與)、Or(邏輯或)、Xor(邏輯異或)、Eqv(邏輯等)、Imp(隱含)第三節(jié) 數(shù)據(jù)類型VBA共有12種數(shù)據(jù)類型,具體見下表,此
3、外用戶還可以根據(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貨幣型 Currency8小數(shù)點型 Decimal無14變體型 Variant無以上任意類型,可變對象型 Object無4第四節(jié) 變量與常量1)VBA允許使用未定義的變量,默認是變體變量。2)在模塊通用說明部份,加入 Option Explicit 語句可以強迫
4、用戶進行變量定義。3)變量定義語句及變量作用域Dim變量 as 類型 '定義為局部變量,如 Dim xyz as integerPrivate變量 as 類型 '定義為私有變量,如 Private xyz as bytePublic變量 as 類型 '定義為公有變量,如 Public xyz as singleGlobal 變量 as 類型 '定義為全局變量,如 Globlal xyz as dateStatic變量 as 類型 '定義為靜態(tài)變量,如 Static xyz as double一般變量作用域的原則是,那部份定義就在那部份起作用,模塊中定義則
5、在該模塊那作用。4)常量為變量的一種特例,用Const定義,且定義時賦值,程序中不能改變值,作用域也如同變量作用域。如下定義:Const Pi=3.1415926 as single第五節(jié) 數(shù)組數(shù)組是包含相同數(shù)據(jù)類型的一組變量的集合,對數(shù)組中的單個變量引用通過數(shù)組索引下標進行。在內存中表現(xiàn)為一個連續(xù)的內存塊,必須用Global或Dim語句來定義。定義規(guī)則如下:Dim 數(shù)組名(lower to upper , lower to upper, .) as type ;Lower缺省值為0。二維數(shù)組是按行列排列,如Dim X(9) as String 聲明了一個10個元素的數(shù)組,X(0)X(9),如
6、果沒有指定lower,則默認lower=0。再例如Dim MyArray(10, 10) As Integer,是個11*11整數(shù)數(shù)組除了以上固定數(shù)組外,VBA還有一種功能強大的動態(tài)數(shù)組,定義時無大小維數(shù)聲明;在程序中再利用Redim語句來重新改變數(shù)組大小,原來數(shù)組內容可以通過加preserve關鍵字來保留。如下例:Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)第六節(jié) 注釋和賦值語句1)注釋語句是用來說明程序中某些語句的功能和作用,注釋語句不會被執(zhí)行;VBA中有兩種方法
7、標識為注釋語句。ü 單引號 ;如:定義全局變量;可以位于別的語句之尾,也可單獨一行ü Rem ;如:Rem定義全局變量;只能單獨一行2)賦值語句是進行對變量或對象屬性賦值的語句,采用賦值號 =,如X=123:Form1.caption=”我的窗口”對對象的賦值采用:set myobject=object 或 myobject:=object第七節(jié) 書寫規(guī)范1)VBA不區(qū)分標識符的字母大小寫,一律認為是小寫字母;2)最好以行只寫一條語句。一行可以書寫多條語句,各語句之間以冒號 : 分開;3)一條語句可以多行書寫,以空格加下劃線 _ 來標識下行為續(xù)行;4)標識符最好能簡潔明了,
8、不造成歧義。第八節(jié) 判斷語句1)IfThenElse語句If condition Then statementsElse elsestatementscondition 是個判斷條件,當condition為真True,就執(zhí)行Then后面的statements那些語句,如果為假False,執(zhí)行elsestatements語句如1:If A>B And C<D Then A=B+2 Else A=C+2 如2:If x>250 Then x=x-100 或者,可以使用塊形式的語法,即IfThenElse語句 可以嵌套:If condition ThenstatementsElse
9、If condition-n Thenelseifstatements .ElseelsestatementsEnd If如1:If Number < 10 Then Digits = 1ElseIf Number < 100 Then Digits = 2Else Digits = 3End If2)Select CaseCaseEnd Case語句如1:Pid的取值來決定執(zhí)行不同的語句Select Case PidCase “A101”Price=200 當Pid的實際值是“A101”,就執(zhí)行Price=200.后面的以此類推Case “A102”Price=300Case E
10、lsePrice=900End Case第九節(jié) 循環(huán)語句1)For Next語句 以指定次數(shù)來重復執(zhí)行一組語句For counter = start To end Step step ' step 缺省值為1statementsExit ForstatementsNext counter如1:for語句也可以嵌套,如下,兩重for循環(huán)For Words = 10 To 1 Step -1 ' 建立 10 次循環(huán) For Chars = 0 To 9 ' 建立 10 次循環(huán) MyString = MyString & Chars ' 將數(shù)字添加到字符串中
11、Next Chars ' Increment counter MyString = MyString & " " ' 添加一個空格Next Words2)For EachNext語句 主要功能是對一個數(shù)組或集合對象進行,讓所有元素重復執(zhí)行一次語句其作用就是遍歷一遍數(shù)組或集合對象中的所有元素For Each element In group group 必要參數(shù)。對象集合或數(shù)組的名稱(用戶定義類型的數(shù)組除外)。StatementsExit forStatementsNext element如1:For Each rang2 In range1With
12、erior.colorindex=6.pattern=xlSolidEnd withNext這上面一例中用到了 WithEnd With 語句,目的是省去對象多次調用,加快速度;語法為:With objectstatementsEnd With3)Doloop語句 在條件為true時,重復執(zhí)行區(qū)塊命令Do while |until condition ' while 為當型循環(huán),until為直到型循環(huán),顧名思義,不多說啦StatementsExit doStatementsLoop或者使用下面語法Do' 先do 再判斷,即不論如何先干一次再說Statemen
13、tsExit doStatementsLoop while |until condition4)whilewend語句,只要條件為TRUE,循環(huán)就執(zhí)行 如下例:while condition while I<50statements I=I+1wend 第十節(jié) 其他類語句和錯誤語句處理這節(jié)可以省略,感興趣的話可以看看一其他循環(huán)語句結構化程序使用以上判斷和循環(huán)語句已經足夠,建議不要輕易使用下面的語句,雖然VBA還支持。1) Goto line 該語句為跳轉到line語句行2) On expression gosub destinatioinlist 或者 on expression got
14、o destinationlist 語句為根據(jù) exprssion表達式值來跳轉到所要的行號或行標記3) Gosub linelineReturn語句, Return 返回到 Gosub line行,如下例:Sub gosubtry()Dim numNum=inputbox(“輸入一個數(shù)字,此值將會被判斷循環(huán)”)If num>0 then Gosub Routine1 :Debug.print num:Exit subRoutine1:Num=num/5 ReturnEnd subWend二錯誤語句處理執(zhí)行階段有時會有錯誤的情況發(fā)生,利用On Error語句來處理錯誤,啟動一個錯誤的處理
15、程序。語法如下:On Error Goto Line當錯誤發(fā)生時,會立刻轉移到line行去On Error Resume Next 當錯誤發(fā)生時,會立刻轉移到發(fā)生錯誤的下一行去On Erro Goto 0當錯誤發(fā)生時,會立刻停止過程中任何錯誤處理過程第十一節(jié) 過程和函數(shù)過程是構成程序的一個模塊,往往用來完成一個相對獨立的功能。過程可以使程序更清晰、更具結構性。VBA具有四種過程:Sub 過程、Function函數(shù)、Property屬性過程和Event事件過程。一Sub過程Sub 過程的參數(shù)有兩種傳遞方式:按值傳遞(ByVal)和按地址傳遞(ByRef)。如下例:Sub password (By
16、Val x as integer, ByRef y as integer)If y=100 then y=x+y else y=x-yx=x+100End subSub call_password ()Dim x1 as integerDim y1 as integerx1=12y1=100Call password (x1,y1) 調用過程方式:1. Call 過程名(參數(shù)1, 參數(shù)2) ; 2. 過程名 參數(shù)1, 參數(shù)2debug.print x1,y1 結果是12、112,y1按地址傳遞改變了值,而x1按值傳遞,未改變原值End sub二Function函數(shù)函數(shù)實際是實現(xiàn)一種映射,它通過
17、一定的映射規(guī)則,完成運算并返回結果。參數(shù)傳遞也兩種:按值傳遞(ByVal)和按地址傳遞(ByRef)。如下例:Function password(ByVal x as integer, byref y as integer) as booleanIf y=100 then y=x+y else y=x-yx=x+100if y=150 then password=true else password=falseEnd FunctionSub call_password ()Dim x1 as integer Dim y1 as integerx1=12y1=100if password the
18、n 調用函數(shù):1. 作為一個表達式放在=右端 ; 2. 作為參數(shù)使用debug.print x1 end ifEnd sub三Property屬性過程和Event事件過程這是VB在對象功能上添加的兩個過程,與對象特征密切相關,也是VBA比較重要組成,技術比較復雜,可以參考相關書籍。我們的試驗不涉及這兩部分第十二節(jié)內部函數(shù)在VBA程序語言中有許多內置函數(shù),可以幫助程序代碼設計和減少代碼的編寫工作。這部分重要是供我們查閱,直接使用的。一般要注意某個函數(shù)的需要輸入的參數(shù)是什么類型的,函數(shù)的返回值又是什么類型的一測試函數(shù)IsNumeric(x) 是否為數(shù)字, 返回Boolean結果,True or F
19、alseIsDate(x) 是否是日期, 返回Boolean結果,True or FalseIsEmpty(x) 是否為Empty, 返回Boolean結果,True or FalseIsArray(x) 指出變量是否為一個數(shù)組。IsError(expression)指出表達式是否為一個錯誤值IsNull(expression)指出表達式是否不包含任何有效數(shù)據(jù) (Null)。IsObject(identifier)指出標識符是否表示對象變量二數(shù)學函數(shù)Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函數(shù),單位為弧度Log(x) 返回x的自然對數(shù)Exp(x)返回 exAbs(x) 返
20、回絕對值Int(number)、Fix(number) 都返回參數(shù)的整數(shù)部分,區(qū)別:Int 將 -8.4 轉換成 -9,而 Fix 將-8.4 轉換成 -8Sgn(number) 返回一個 Variant (Integer),指出參數(shù)的正負號Sqr(number) 返回一個 Double,指定參數(shù)的平方根VarType(varname) 返回一個 Integer,指出變量的子類型Rnd(x)返回0-1之間的單精度數(shù)據(jù),x為隨機種子三字符串函數(shù)Trim(string) 去掉string左右兩端空白Ltrim(string) 去掉string左端空白Rtrim(string) 去掉string右端
21、空白Len(string) 計算string長度Left(string, x) 取string左段x個字符組成的字符串Right(string, x) 取string右段x個字符組成的字符串Mid(string, start,x) 取string從start位開始的x個字符組成的字符串Ucase(string) 轉換為大寫Lcase(string) 轉換為小寫Space(x) 返回x個空白的字符串Asc(string) 返回一個 integer,代表字符串中首字母的字符代碼Chr(charcode)返回 string,其中包含有與指定的字符代碼相關的字符四轉換函數(shù)CBool(expressio
22、n)轉換為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ù)No
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國高檔鋁合金門窗項目可行性研究報告
- 2024-2030年中國飲用水軟化機行業(yè)市場深度調研及發(fā)展趨勢與投資前景研究報告
- 2024-2030年中國預制短向板項目可行性研究報告
- 2024-2030年中國雪茄煙管產業(yè)未來發(fā)展趨勢及投資策略分析報告
- 2024-2030年中國陶瓷量儀構件項目可行性研究報告
- 2024-2030年中國長壽糯米項目可行性研究報告
- 2024-2030年中國銀行保險行業(yè)商業(yè)模式創(chuàng)新及投資戰(zhàn)略建議報告
- 2024-2030年中國鉻鹽行業(yè)需求趨勢預測及發(fā)展風險分析報告
- 2024-2030年中國鈹銅板帶材行業(yè)競爭策略及未來前景展望報告
- 2024-2030年中國鐵皮石斛行業(yè)供需狀況及投資戰(zhàn)略建議報告
- 曼丁之獅-松迪亞塔
- 數(shù)值實驗報告-實驗三
- 管理學原理:控制習題與答案
- 金屬擠壓共(有色擠壓工)中級復習資料練習卷含答案
- 護患溝通情景實例
- 往復式壓縮機常見故障與排除
- 高速鐵道工程職業(yè)生涯規(guī)劃書
- 護理查房-膝痹病課件
- 圓球幕墻施工方案
- 歌劇《洪湖水浪打浪-》課件
- 現(xiàn)澆砼路緣石施工方案百度
評論
0/150
提交評論