|
来源:http://blog.csdn.net/aspstu/ 7 \9 k& v$ E3 O- f+ C
语句
. |! [& j2 V& h( rCall 2 ^* o$ Y1 }. b# L* \
[call] name [argumentlist]
: J# f! C: h2 I* |$ [, V1 o6 v2 H把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。 " S! C% x# W: Q0 _" }
Const 3 H# Y' U# i1 \& p1 y
[Public | Private] Const constantname=expression
) U( W( o n7 y( V2 z用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 7 `( ?( A. W* R( x. l9 \
Dim - X4 P- V1 r5 |
Dim varname[ ( [subscripts])][, varname [( [subscripts])]... 9 b" f2 ?1 |* I( Z: J+ a, V& N2 v* _
创建一个新变量并且分配存储空间。 6 H! j. q4 S5 h; @' y
DO . . . LOOP
/ x) F* `. Q P% V/ ]3 g语法 1:
4 Z( O1 V( M0 P) t, nDo [{While | Until } condition ] 6 P+ C) Z1 h2 S0 }! Z$ U
[statements]
# w+ t' U8 g) L& _9 q3 M; y8 `[Exit Do] 5 Q# D/ L+ I M5 a2 j
[statements]
7 ^6 D9 D. j$ fLOOP
) F8 T- B' _$ S8 O语法 2: 8 _& {( s6 `- h ~( q( ^$ \
Do y/ G# n" N" V
[statements]
) U* k% Z; o0 E6 b7 Y! i8 x[Exit Do] 6 t! k) {# c0 h9 h% O" N
[statements] / i% @/ j) Q: }2 t0 \" Q
LOOP [{While | Until } condition ] . O1 J) P, P& Q3 f
当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。 ( \# f# s9 L5 n. c& `3 d
Erase
( z! l6 H' H: W( j% A$ h: xErase array : }3 i7 Z: g- j$ }2 k
清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。 / F l7 L+ j/ o! m
Exit
2 w/ M* H2 p! ?Exit Do
2 @9 L F# S7 g$ a& q# [7 L) \6 O. G退出一个 DO . . . LOOP 循环。 2 @; R# F4 N" `4 {% V8 I
Exit For ( l+ j! c. A2 E. H% v8 w4 ?: b) G
退出一个 For . . . Next 循环或For Each . . . Next循环。 ! ~8 |1 K2 U. T
Exit Function . p7 \. f4 \ V! f
退出一个 函数。 ) W: Z' ^5 x5 V
Exit Sub , r0 v O7 n+ x* \
退出一个子程序。
$ h- k) _6 x, q" R" ~For . . . Next
2 l1 m ]1 l: E! n# _For counter = start To End [Step step]
% S) J' ~* }: D$ Y9 R! M, q( b/ ]5 _[statements] 7 l/ l* a+ f% m6 B! b
[Exit For] ; V' e1 Y' j, P' w1 b; x# I
[statements] ' v3 ]2 s* _- x4 {7 \
Next
8 x6 o: ?' ?- M" ~由loop 计数器指定的次数重复执行statements语句群。 % u0 W/ A* m: b0 Z) B7 h2 H3 D
For Each . . . Next 6 ~. c S" o* J# U
For Each element In group
- i N2 q& z5 a y5 y& e[statements]
" D2 }' x5 C4 k8 }* S1 V[Exit For]
& q) t" X0 [- B[statements] 5 I l9 Y" b2 f H& v
Next [element] & k( O7 Z5 y: w# ^" f+ [6 Y
对于每一个在数组或集合中的元素,重复执行statements语句群。
! `8 M" E" K. m/ k* h+ f1 eFunction
( P' J1 d, }. H) c8 ]7 U[Public | Private] Function name [(arglist)] , H2 E0 ]# `) ~9 d$ e4 z- T# z+ m
[statements]
6 i2 H _" p9 z5 H4 f8 J[name=expression] - j0 F+ Y% ^& `% [' u `/ g$ _
[Exit Function]
; }% y" Q- U" a7 |, S[statements]
w8 W) m/ r. U[name=expression] ; ~( o& p& M1 y5 U
End Function
3 Q6 c! d |' ^" V% q" w. {" ?; U定义一个函数,指明函数名,参数及代码。 1 }6 [# t+ m. O; v
If . . . Then . . . Else ' I. G) z E" c# u# r3 ?
语法1: ( ^. c8 g' _+ Q0 Z7 u/ D
If condition Then statements [Else elsestatements] : Z/ m3 s: W2 }! f# Y
语法2: * N. q7 E% y, l/ Z6 b1 B8 [+ m
If condition Then
) E4 a+ m) w8 b! t1 L, Estatements ( |! e& u+ L# o. ?1 C1 u- N3 X1 o
[ElseIf condition-n Then ' R7 P* ~( \1 t& ?) ]
[elseifstatements]] . . . , f' M$ x" H; z# N( M
[Else
, v. w0 d5 ^' j0 {* S[elsestatements]] 8 N; s' @1 r5 P
End If
8 F$ Z/ b2 E: _两种格式都条件执行一系列语句。 6 s/ I1 L g. F" t
On Error
/ I% G g7 Q. A" z V3 \9 iOn Error Resume Next
% N* `& Z) Y% C9 Y当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
6 o; I' L' m9 u, @2 wOption Explicit
9 ]" k9 h/ l C1 T: fOption Explicit
" w) X8 h3 p' A2 b3 I. A$ g在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。 1 t$ H! l% s; a# @
Private . |8 R; N/ Y5 z. m7 _3 L
Private varname[([下标])][, varname[([下标])] . . . 2 U4 F& j1 f2 \: H
创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用) 0 n- d7 T) D0 ^" v# z
Public
8 O& N3 ^6 o% R9 \+ ], ?' yPublic varname[([下标])][, varname[([下标])] . . .
9 S: L( ?' a. L# h创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用) 3 l1 E, k' y3 t3 @" i) [
Randomize / {1 U# R, R0 K& X2 t& U
Randomize [number] $ L% X* A7 n' _& G. G( x* `. b
给Rnd函数的随机数发生器一个新种子值。 " D. t9 r- J9 }) u6 i
ReDim $ o$ o. S7 d8 V) Z& Z
ReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . . ' o" m) P' N; z! \0 t
修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。
- x' R* x3 W0 Y4 ]Rem
+ e6 f7 P9 g" `9 h语法1:
& s$ W1 s' l% ?Rem comment
1 U7 n9 k+ U3 d+ S& R# v4 p. [, d语法2:
( Z5 D: b1 a4 G' \2 \‘comment
V F; r% v7 q3 X- y: U这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。 ; q1 @. B, f6 x6 G& f& Z
Select Case " g% K; }3 Y8 `' R
Select Case testexpression 4 g) d) o+ E, [) b7 w7 p: }
[Case expressionlist-n y3 L7 W. ]+ r% {
[statements-n]] . . .
- c* t$ [9 [+ [0 k6 C% G[Case Else expressionlist-n / o! {8 F4 m1 g3 | `7 F5 d
[elsestatements-n]] 6 T: }+ K* r1 P
End Select 1 |3 c" W G; j# g+ `; N
如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
4 x3 k! C: a f% k* T% fSet
, Y2 P) p( L& ]7 w: |/ \ kSet obectvar= {objectexpression | Nothing} 0 J& X. h7 M& Y: k4 M
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 , i: L2 ^# ]0 y! H, d1 N
Sub
, \; ]$ [- B, s% o5 v# S[Public | Private] Sub name [(arglist)] + T6 c; [& R$ j; D' k
[statements] 0 I9 w1 p. p# I1 Q/ i9 \8 |
[Exit Sub] 1 L7 _( b2 y. o
[statements] / `2 w% \8 `* I3 v3 R! x
End Sub
. Q& v _! D: z0 H8 T$ o8 a* X定义一个子程序,指明名称,参数及代码。
& e' U2 {. K- q: M1 y- uWhile . . . Wend
0 ~) j7 {& B1 X. i/ ]* [While condition
+ n* j& D7 ?# c$ |+ a; Q' G7 j[statements]
6 S* _/ [+ r& J( G6 WWend
* |4 w6 p" H" i, k不停地连续执行语句statements 直到条件condition为True。 1 N( Z1 E' x, a& L b( ~
* F0 A% c+ K! p6 n6 B- H; _ |