技術(shù)問題,回答得專家指數(shù),快速升級(jí)
-
這個(gè)論壇沒有辦法查看發(fā)的帖子的閱讀量嗎 在線,5小時(shí)前提問
-
微信號(hào)綁定錯(cuò)誤怎么辦 在線,23天前提問
-
這個(gè)紙質(zhì)版,怎么買啊 在線,31天前提問
-
聯(lián)通的手機(jī)不能訪問論壇,解釋論壇的地址是加拿大地. 在線,48天前提問
-
有沒有做基站覆蓋仿真的軟件? 在線,77天前提問
-
技術(shù)創(chuàng)新與市場(chǎng)策略的調(diào)整,將成為決定企業(yè)能否在全. 在線,80天前提問
-
終端熄屏進(jìn)入 Idle 態(tài)? 在線,90天前提問
-
有些資料能幫忙找嗎 在線,108天前提問
-
大陸版谷歌打不開,有什么辦法嘛 在線,114天前提問
-
華為GSC高級(jí)和網(wǎng)優(yōu)高級(jí)有什么區(qū)別 在線,124天前提問
-
請(qǐng)問客服在嗎? 在線,141天前提問
-
信號(hào)好,volte通話雜音可能原因 在線,170天前提問
-
有幾個(gè)月了。 在線,178天前提問
-
為什么訪問你的論壇老出這個(gè)無訪問登 在線,178天前提問
-
怎樣解綁微信? 在線,211天前提問
-
數(shù)通有哪些產(chǎn)品 在線,230天前提問
第一節(jié) 標(biāo)識(shí)符
一.定義
標(biāo)識(shí)符是一種標(biāo)識(shí)變量、常量、過程、函數(shù)、類等語言構(gòu)成單位的符號(hào),利用它可以完成對(duì)變量、常量、過程、函數(shù)、類等的引用。
二.命名規(guī)則
1)字母打頭,由字母、數(shù)字和下劃線組成,A987b_23Abc
2)字符長(zhǎng)度小于40,(Excel2002以上中文版等,可以用漢字且長(zhǎng)度可達(dá)254個(gè)字符)
3)不能與VB保留關(guān)鍵字重名,如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)算符 &、+ (字符連接符)、+(加)、-(減)、Mod(取余)、\(整除)、*(乘)、/(除)、-(負(fù)號(hào))、^(指數(shù))
3)邏輯運(yùn)算符Not(非)、And(與)、Or(或)、Xor(異或)、Eqv(相等)、Imp(隱含)
4)關(guān)系運(yùn)算符 = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is
5)位運(yùn)算符 Not(邏輯非)、And(邏輯與)、Or(邏輯或)、Xor(邏輯異或)、Eqv(邏輯等)、Imp(隱含)
第三節(jié) 數(shù)據(jù)類型
VBA共有12種數(shù)據(jù)類型,具體見下表,此外用戶還可以根據(jù)以下類型用Type自定義數(shù)據(jù)類型。
數(shù)據(jù)類型類型標(biāo)識(shí)符字節(jié)
字符串型 String$字符長(zhǎng)度(0-65400)
字節(jié)型Byte 無1
布爾型Boolean 無2
整數(shù)型Integer % 2
長(zhǎng)整數(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)在模塊通用說明部份,加入 Option Explicit 語句可以強(qiáng)迫用戶進(jìn)行變量定義
3)變量定義語句及變量作用域
Dim變量as類型'定義為局部變量,如 Dim xyz as integer
Private 變量as類型'定義為私有變量,如 Privatexyz as byte
Public變量as類型'定義為公有變量,如 Publicxyz as single
Global變量as類型'定義為全局變量,如 Globlalxyz as date
Static變量as類型'定義為靜態(tài)變量,如 Staticxyz as double
一般變量作用域的原則是,那部份定義就在那部份起作用,模塊中定義則在該模塊那作用。
4)常量為變量的一種特例,用Const定義,且定義時(shí)賦值,程序中不能改變值,作用域也如同變量作用域。
如下定義:Const Pi=3.1415926 as single
第五節(jié) 數(shù)組
數(shù)組是包含相同數(shù)據(jù)類型的一組變量的集合,對(duì)數(shù)組中的單個(gè)變量引用通過數(shù)組索引下標(biāo)進(jìn)行。在內(nèi)存中表現(xiàn)為一個(gè)連續(xù)的內(nèi)存塊,必須用Global或Dim語句來定義。定義規(guī)則如下:
Dim 數(shù)組名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值為0。二維數(shù)組是按行列排列,如XYZ(行,列)。
除了以上固定數(shù)組外,VBA還有一種功能強(qiáng)大的動(dòng)態(tài)數(shù)組,定義時(shí)無大小維數(shù)聲明;在程序中再利用Redim語句來重新改變數(shù)組大小,原來數(shù)組內(nèi)容可以通過加preserve關(guān)鍵字來保留。如下例:
Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)
第六節(jié) 注釋和賦值語句
1)注釋語句是用來說明程序中某些語句的功能和作用;VBA中有兩種方法標(biāo)識(shí)為注釋語句。
' 單引號(hào) 如:’ 定義全局變量;可以位于別的語句之尾,也可單獨(dú)一行
Rem如:Rem 定義全局變量;只能單獨(dú)一行
2)賦值語句是進(jìn)行對(duì)變量或?qū)ο髮傩再x值的語句,采用賦值號(hào) = ,如X=123:Form1.caption=”我的窗口”
對(duì)象變量的賦值采用:set myobject=object 或myobject:=object
第七節(jié) 書寫規(guī)范
1)VBA不區(qū)分標(biāo)識(shí)符的字母大小寫,一律認(rèn)為是小寫字母;
2)一行可以書寫多條語句,各語句之間以冒號(hào) : 分開;
3)一條語句可以多行書寫,以空格加下劃線 _ 來標(biāo)識(shí)下行為續(xù)行;
4)標(biāo)識(shí)符最好能簡(jiǎn)潔明了,不造成歧義。
第八節(jié) 條件語句
1)If…Then…Else語句
If condition Then [statements][Else elsestatements]
如1:If A>B And C<D Then A=B+2 Else A=C+2
如2:If x>250 Then x=x-100
或者,可以使用塊形式的語法:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements] ...
[Else
[elsestatements]]
End If
如1:
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
Digits = 2
Else
Digits = 3
End If
2)Select Case…Case…End Case語句
如1:
Select Case Pid
Case “A101”
Price=200
Case “A102”
Price=300
……
Case Else
Price=900
End Case
3)Choose 函數(shù)
choose(index, choce-1,choice-2,…,choice-n),可以用來選擇自變量串列中的一個(gè)值,并將其返回,index 必要參數(shù),數(shù)值表達(dá)式或字段,它的運(yùn)算結(jié)果是一個(gè)數(shù)值,且界于 1 和可選擇的項(xiàng)目數(shù)之間。choice 必要參數(shù),Variant表達(dá)式,包含可選擇項(xiàng)目的其中之一。如:
GetChoice = Choose(Ind, "Speedy", "United", "Federal")
4)Switch函數(shù)
Switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]])
switch函數(shù)和Choose函數(shù)類似,但它是以兩個(gè)一組的方式返回所要的值,在串列中,最先為TRUE的值會(huì)被返回。 expr 必要參數(shù),要加以計(jì)算的 Variant 表達(dá)式。value 必要參數(shù)。如果相關(guān)的表達(dá)式為 True,則返回此部分的數(shù)值或表達(dá)式,沒有一個(gè)表達(dá)式為 True,Switch 會(huì)返回一個(gè) Null值。
第九節(jié) 循環(huán)語句
1)For Next語句 以指定次數(shù)來重復(fù)執(zhí)行一組語句
For counter = start To end [Step step]' step 缺省值為1
[statements]
[Exit For]
[statements]
Next [counter]
如1:
For Words = 10 To 1 Step -1' 建立 10 次循環(huán)
For Chars = 0 To 9 ' 建立 10 次循環(huán)
MyString = MyString & Chars ' 將數(shù)字添加到字符串中
Next Chars ' Increment counter
MyString = MyString & " "' 添加一個(gè)空格
Next Words
2)For Each…Next語句主要功能是對(duì)一個(gè)數(shù)組或集合對(duì)象進(jìn)行,讓所有元素重復(fù)執(zhí)行一次語句
For Each element In group
Statements
[Exit for]
Statements
Next [element]
如1:
For Each rang2 In range1
With range2.interior
.colorindex=6
.pattern=xlSolid
End with
Next
這上面一例中用到了 With…End With 語句,目的是省去對(duì)象多次調(diào)用,加快速度;語法為:
With object
[statements]
End With
3)Do…loop語句 在條件為true時(shí),重復(fù)執(zhí)行區(qū)塊命令
Do {while |until} condition' while 為當(dāng)型循環(huán),until為直到型循環(huán),顧名思義,不多說啦
Statements
Exit do
Statements
Loop
或者使用下面語法
Do ' 先do 再判斷,即不論如何先干一次再說
Statements
Exit do
Statements
Loop {while |until} condition
|