|
来源:http://blog.csdn.net/aspstu/ ; l! }- J" V/ D/ w
语句
" w/ ~0 b& H( d/ D$ k4 @8 SCall
4 W6 y$ `, p4 i, A( l8 J2 X, V[call] name [argumentlist]
# ~. H ~3 O* E9 }5 \把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。 8 `0 a6 F8 E4 ]. Q0 V# u
Const , [% R( c+ Z9 Z2 B" a, o+ K9 |
[Public | Private] Const constantname=expression ! f% ]! r+ b7 R/ [
用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 ( i) A4 @+ q- q. F9 V
Dim
9 |. ~) I! z2 SDim varname[ ( [subscripts])][, varname [( [subscripts])]... 3 v. ^* d5 s* ?5 I5 o
创建一个新变量并且分配存储空间。 $ a S$ R3 u6 |, t4 R9 c9 E! Q
DO . . . LOOP
3 x5 q6 N; F4 c# I- j8 q% f语法 1:
) D* M/ f% n2 Q! cDo [{While | Until } condition ] / @( F& V) J3 t; V W( t) s
[statements]
/ ^0 t/ j u' F" |" D/ K7 P[Exit Do] ) ?( O5 V! ^+ c$ M4 W2 [" G j# z
[statements] ' t( g# W7 A0 E& b
LOOP
+ e9 [# ~0 V( w! F/ c0 X语法 2:
" `) A) i. _! f! E& B1 \; ?Do
0 ~" e/ P# Q3 u/ j2 k7 `- ?[statements]
4 v8 K' V3 f- @2 `0 K[Exit Do] ! h% e$ z* }- ?( n
[statements] + j8 n' A& \) x$ R8 x q+ G
LOOP [{While | Until } condition ]
, F+ O5 F" S3 U当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。
& @4 |+ Q! z+ z5 }' i1 ]Erase
. }2 ?$ |3 X4 X: h) r7 R0 {, {Erase array
: w m$ U* P2 h. q- Q清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
; B6 f6 E* E: U' s# u8 TExit
* p- i* T$ B4 J8 Z4 pExit Do L# c$ p5 b, `4 p5 Y
退出一个 DO . . . LOOP 循环。
0 n, f/ e: @9 o) \3 a, jExit For
6 s; f! f( D2 f9 ]1 l退出一个 For . . . Next 循环或For Each . . . Next循环。 7 ?! L0 ^' t6 f4 O! _2 x
Exit Function
* Q- B. F; }. R退出一个 函数。 ' N& E5 M2 H5 `0 h" } p
Exit Sub
2 r; L# U% k. W& K/ F退出一个子程序。 $ T+ G: v8 [5 H9 H8 r% v* Q8 j" K
For . . . Next
2 j* e" C+ O0 M( n. w, FFor counter = start To End [Step step] 1 V9 }; i s8 C* E4 D2 F9 M) A
[statements] ) r; _( \0 L& N! N8 Z2 S7 Q: l
[Exit For] / y* k1 Y2 w3 k- L
[statements] 3 D# l1 s8 `# y# q* n+ E& S( z1 D
Next
. k1 @1 _9 n2 G6 o( i) t: D( b由loop 计数器指定的次数重复执行statements语句群。 - ~8 Q6 t# I" b& v' B* T
For Each . . . Next 5 r* K4 p" U1 C: O, M" n; _
For Each element In group $ ~. u+ j% s3 X0 u( M" ]) q; g
[statements] 5 c4 \/ u. d. ~9 }( Y
[Exit For]
2 t% |# n9 q1 e" @, z- W8 a3 v[statements] ! \6 x) ?% L9 W r
Next [element]
4 m3 F& D. p, }( b对于每一个在数组或集合中的元素,重复执行statements语句群。
; L6 ]) [0 ]3 W6 L/ X" Z0 q+ N6 L! QFunction
. W% J; n$ \3 E- A[Public | Private] Function name [(arglist)] / G _0 |+ @. s- s% W* V: \! x
[statements] # s) F- e% K# y1 e( a; h
[name=expression]
0 X9 D8 y2 x$ X+ S( E$ I. ][Exit Function] " x3 Z) f" h! z1 p& b0 I* {6 U& W
[statements]
( |, `8 i: |7 h E& C5 W[name=expression]
7 \7 V3 |& i6 d$ i" ?End Function 0 q- _" P3 ?1 {- e7 v; a- a& N! o
定义一个函数,指明函数名,参数及代码。
' r4 | J5 b# e2 x' B( y1 [/ H$ t9 TIf . . . Then . . . Else 6 f; b) `& `4 I4 z, |9 U
语法1:
1 K+ j, O+ y1 a0 WIf condition Then statements [Else elsestatements] + g% Y+ P$ y7 J/ P. W
语法2: % B% Q, y! f: \6 z( s
If condition Then 9 e2 i" x# _. G( o* {
statements . V% [- b1 Y0 A- Y: `3 k1 |, w
[ElseIf condition-n Then ( R; L7 x; m% K, c. }- }
[elseifstatements]] . . . * s3 w, J) t& U, w
[Else
5 X1 b7 N& A% X: S4 \; A$ j9 d9 t[elsestatements]] 2 O! Y* S5 O- n& ]( z2 O" L
End If
% \# C5 U: }: I# j4 g两种格式都条件执行一系列语句。
6 E7 j4 w8 T. M$ oOn Error
7 q; r' i9 i' P6 ]On Error Resume Next : W$ ~) m g3 n- V- F
当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
' U5 f5 |3 ~* pOption Explicit
( V' {0 z# E8 OOption Explicit $ A8 U2 n3 h! W8 ~% s0 C, j8 z
在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。 G% C8 d( l- a4 Y
Private 2 L u5 J% ], G8 Y- b+ w* o
Private varname[([下标])][, varname[([下标])] . . .
& M+ G; {) U/ j' B% M创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用) ' ^* o# Q, r" S) c* Q1 y" I# I
Public
" Q% c, X! G* C; ^Public varname[([下标])][, varname[([下标])] . . . 4 h& a0 |6 {7 Y7 F) I0 L
创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用)
- O" Y& v8 K3 @. m4 sRandomize / h7 p3 B1 D& i' B
Randomize [number]
2 a. J# z$ U! Q4 \ B- ^4 e给Rnd函数的随机数发生器一个新种子值。
, ^- i3 D5 v, R' {* w) \, S& `+ S' XReDim # ?! L- j6 ?& h" F
ReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . . _2 z$ g! ] D( d3 B; _
修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。
* [/ Q# U7 D! ]! N( A% ZRem
) t( H( d8 ?6 T4 i语法1: % E5 y9 R9 c* H7 l+ V5 f: V
Rem comment 4 \6 ^6 }) E, K' J# E
语法2: 7 T3 S' i2 j& Q0 v* O6 g. ?6 ?! E
‘comment
3 P( t' q z! v# ]) j0 w- U这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。 + R4 o I% g& S
Select Case 6 s4 `+ t8 T4 A( D$ W; m$ u4 Q: J
Select Case testexpression 4 m8 E, o3 t1 Z% m$ }
[Case expressionlist-n
& {+ r5 Z0 I. v* \7 j% [9 T6 `[statements-n]] . . .
' C- D; W5 F& X. E5 _) k. t5 Q* o5 f8 q[Case Else expressionlist-n 3 `) M& W5 J5 {; ^. B4 m) I g( P
[elsestatements-n]]
5 A' ]+ F7 h6 T1 a" i# V: PEnd Select
/ r+ t0 K3 e/ \- H7 Z如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
3 y ^: `- ?. ySet
7 x4 b5 A9 e$ t; s$ A ^# b5 zSet obectvar= {objectexpression | Nothing} ' K, M& B% i5 Z
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 . U1 Q( U N8 p! E0 |6 d
Sub
# b. m5 j4 H3 H[Public | Private] Sub name [(arglist)] 0 b' f6 V. c% b9 P& b
[statements] $ U2 U% H( a: E$ h L, o
[Exit Sub] % M" l2 ?. }2 X* p* V/ c# q( m
[statements]
_( K) m& u |: h3 ~% bEnd Sub
( A- r- _! t U' [; o) I定义一个子程序,指明名称,参数及代码。
4 C* s% P& i- \% N; WWhile . . . Wend : M* J# Q8 v+ o& Y
While condition
" }- I1 c8 D! p, `[statements]
" G" V7 o0 N8 Z$ l" f6 F ~* a! y( [Wend ~4 q; N1 i. d
不停地连续执行语句statements 直到条件condition为True。
% S. y8 B. {4 E; E
6 g/ j* t. F3 m6 {6 E4 _7 c |