|
来源:http://blog.csdn.net/aspstu/ - E; }, ]7 U# x4 ^
语句/ N8 [9 a, y8 p: m/ L& F
Call h9 b' p2 Y* \- q
[call] name [argumentlist] ' d; }% `% P1 x
把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。
* o" Y8 g5 ] B/ PConst
* e5 E9 C; q& R: D: }9 R( m$ e[Public | Private] Const constantname=expression
) C5 b( X4 }+ i7 t4 u+ U2 j用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。
/ E [/ ?5 ], D7 W, BDim & k2 [ Q6 q0 ?( h+ k
Dim varname[ ( [subscripts])][, varname [( [subscripts])]...
( R+ k. s) V3 d. Z创建一个新变量并且分配存储空间。 4 G, q- R9 B5 q" ], ?9 e
DO . . . LOOP
' A( }% P7 ]; E: _语法 1: 7 W' _+ S0 N- s2 @
Do [{While | Until } condition ]
# s8 p L7 J7 W4 g9 q _* B% m[statements] / V% |; h( ~ N# U% L# d
[Exit Do] ! X R2 f) L. g. m9 U6 K3 H! M
[statements] , B) s1 q6 ], n L
LOOP " A' V* m2 p/ D& k- b; J+ G3 T$ h0 J
语法 2:
9 i; x1 [+ c8 v+ |' dDo
. v6 v8 ]$ Z9 C[statements]
, z. ~+ A+ M( C$ g. \- R) V[Exit Do]
' v/ f, U/ r# y- n( l[statements] ; K6 Q: t! B; _$ b* P! Z; @
LOOP [{While | Until } condition ]
7 T3 D0 c! f4 O8 H4 Q- \当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。
/ X3 [: C# G: `% h9 J' {/ d: l0 kErase
* l) W- ~$ ^: WErase array
! ~5 v: x. R# Z7 f3 ]4 N7 J清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
2 I4 {# H, O6 Z* x9 B' R/ IExit # H8 D3 }) ~, a: g
Exit Do
2 U1 \" x% w! Q% e1 l. }" g6 K0 K退出一个 DO . . . LOOP 循环。
) U% c* X3 y( z. B+ C, U& ?7 M6 i' G! pExit For
& R: H* M3 n# ]# g; x& W( D* D3 ?退出一个 For . . . Next 循环或For Each . . . Next循环。
# u5 L! S. G I2 j1 ?Exit Function
+ @* \7 c/ K' R退出一个 函数。 ! G& p. W' u1 U7 L* c
Exit Sub 8 O' l. G9 o% d
退出一个子程序。
+ e4 H6 G* E; \+ q1 r- f. }2 l& ^) mFor . . . Next 2 S" I- J3 W; ~% ]$ j
For counter = start To End [Step step] % }( J) L% r% G5 A, e7 V
[statements]
9 {! Q' u3 D4 }4 Z7 ~[Exit For] 6 k* i, G7 M8 N3 n% C9 ]: k
[statements] 6 s0 ]0 m) U; P: z+ D
Next ! L4 J5 m- y; ^& x
由loop 计数器指定的次数重复执行statements语句群。 3 Y. ^' ~4 ]5 o
For Each . . . Next
7 N+ I: Y4 P* xFor Each element In group 5 o! J# \* n8 S6 i! z+ I8 U
[statements]
0 O' | h9 U+ T W# M[Exit For]
' Y8 N/ K, j4 H0 u; `[statements]
) H4 W- a* t0 N/ P. ^4 I- B7 tNext [element] 8 k5 k) p' y- z1 B
对于每一个在数组或集合中的元素,重复执行statements语句群。 + `" |5 F5 D9 K- ?
Function
' b- f$ [7 D+ Z2 q3 l( E6 M( w' n[Public | Private] Function name [(arglist)] $ \" x4 K0 R6 D% D7 d! a9 t
[statements] , b# X; k U. T% y$ h8 O H4 h- S
[name=expression]
9 O4 k& Y' l% V7 x9 R) Z0 h+ F, o[Exit Function]
1 v8 N1 C4 }# |6 X[statements]
$ C. w% W+ a* m5 J% Z/ g[name=expression] , o: m J( T$ T4 Z
End Function 8 }, _% f! U9 q8 S, w$ j
定义一个函数,指明函数名,参数及代码。 ' L0 b# [1 P6 z# a3 X& ]$ H; @
If . . . Then . . . Else
9 v, }0 S( C! V+ N$ q8 q' q, v语法1:
! b* K9 C, ]9 JIf condition Then statements [Else elsestatements] ; r2 n$ U9 h" ]3 z7 G7 l9 |/ f, i
语法2:
. G& @, q9 _; W2 g) T) @' f. zIf condition Then % ]* C3 D+ r4 x# O7 T& B
statements
0 N& g* _9 u, p4 b. {8 u5 k6 t[ElseIf condition-n Then ( O( Z1 f: Y# _6 q# T. M7 v
[elseifstatements]] . . . % z1 ]. b& j( G5 l' z* q+ b/ O
[Else 2 T. W( U: B% w) S. u7 t
[elsestatements]]
$ |2 r+ ~; z$ h" Q" QEnd If
& p% ~. Q0 y3 P$ F: r5 B: g% p/ M两种格式都条件执行一系列语句。
& D* h3 p" K2 k* IOn Error
, b" Q6 V+ A. r- X# n: n( fOn Error Resume Next
" S* ]# W& I8 Z' ^& h; @! \当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
! B0 Q6 P5 a3 K! ?Option Explicit & n& U* J) V) o3 j( Y
Option Explicit
# F. P2 r) }" c, Q- D在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。
' g1 r* j% x, }7 I( j2 z$ YPrivate
0 [+ x: R$ v- K( i- oPrivate varname[([下标])][, varname[([下标])] . . . " m8 F& y% K- _- S
创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用) 2 E E# o/ ~5 o% p1 T. Q) Q9 T
Public
& V7 u' l" K- z* KPublic varname[([下标])][, varname[([下标])] . . .
3 c/ T' ?# b3 Y# D* |9 b3 f, a创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用) & |" Y& a/ B0 ~& t$ Z/ G! P; n
Randomize
: U8 o" L" ` y- { J( e; TRandomize [number]
" R! g! z- k6 @3 V/ k给Rnd函数的随机数发生器一个新种子值。 + ~: E: I8 m+ N h& N: x( ` z1 X
ReDim
5 m3 ?% I/ J3 |& RReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . .
O4 C ~# A* {3 E; _: W修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。
7 t, c9 H) v |1 GRem ! w3 K" A- {. b
语法1:
8 C+ u- f0 C2 K }0 c1 J. j1 @Rem comment % |3 i5 O/ S( o" H! s' u2 [9 V" _5 t
语法2: % Z, I# m5 B2 ^& t* I: U# D: B
‘comment 6 }# e) P- C) u! q
这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。 ) }5 d! O: o% t) t
Select Case
6 f7 a# N* a7 K$ ESelect Case testexpression
$ M- k7 B- t) [$ H[Case expressionlist-n
/ {; V! Z" ` x8 h6 g8 m8 v4 t! i[statements-n]] . . . ) }( u; U5 r6 l9 t
[Case Else expressionlist-n : I* Q6 m1 [1 j, w" }4 B
[elsestatements-n]]
+ |3 _( t* w% B# G/ Z3 dEnd Select ! I0 I |$ b+ v* }, t# E
如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
* p& F0 O' n% A- v8 K$ sSet ' N1 G, v9 T5 j, f& c$ A% Z) G9 _
Set obectvar= {objectexpression | Nothing} 4 u# L- P3 n8 F6 B1 G9 R
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 * Y' K1 @6 T D5 y
Sub * ^$ R* Y: I+ Q7 G+ `1 l" {5 |( X
[Public | Private] Sub name [(arglist)]
2 P4 ?4 B3 h- u) Y7 }[statements]
* J& H) M8 J4 f1 S- ^3 }[Exit Sub] - n1 T4 u6 J& A2 F: D" s
[statements] * g6 ~5 R; m, b8 A! u. ]* k
End Sub
! |7 w5 I0 C( D2 H1 r定义一个子程序,指明名称,参数及代码。 5 }, g# O/ q6 ~2 K9 ]( j3 y
While . . . Wend . Y1 A( r6 m+ v2 ?! J/ H
While condition
- T. p$ p1 e+ }# I( H W[statements] 8 h) e( b4 {: M/ Y8 j
Wend - R! k8 x2 h; u/ f* D: i; j- L
不停地连续执行语句statements 直到条件condition为True。
2 H, `6 i& S8 S8 d4 ~
' C9 s7 m+ z/ J3 W% j5 x |