|
来源:http://blog.csdn.net/aspstu/
! A7 w5 _; J5 T& G语句
) A1 S, G0 @% k) b6 o l2 _Call
3 M3 N6 h! G! a& c' ^# @2 z2 s[call] name [argumentlist] 1 F3 k; m1 B$ ]9 F1 T: K
把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。 ) t5 S+ _: T1 O8 U# I- v' T3 W$ l7 n
Const
* U. d1 J! ]- M# R[Public | Private] Const constantname=expression
% f8 k# T# w) y# K1 a用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 8 e* N* K, @6 w4 A7 t8 m4 D7 A
Dim & m- f9 v0 _& k: J9 w6 X* Q N" Q
Dim varname[ ( [subscripts])][, varname [( [subscripts])]...
3 f B! f7 D) }5 e创建一个新变量并且分配存储空间。
' [- }( ~+ a& _. B4 a/ FDO . . . LOOP
/ ?) m' {; R! z/ o* V# F0 j语法 1: 0 H, d! e5 b; l, v* \+ E |; w. i
Do [{While | Until } condition ] # c; f- D! M& C$ V' X+ \; B0 h
[statements] 5 J9 C1 \1 @9 v
[Exit Do] 8 @9 Y. r; f! z/ ~0 d
[statements]
- O9 ^4 m F2 j6 P" ]LOOP
- w. b/ N+ g& e/ w, U- W; M4 H语法 2:
, |& J- K& z. }% t! {4 }9 ZDo ! R; h2 f; a. h" O( W
[statements]
t/ ^7 |: e( ^- K[Exit Do] 8 y' [( G+ ?9 R1 P8 n
[statements]
8 h+ ^2 l& @2 O' ?0 {% `0 l4 oLOOP [{While | Until } condition ] 1 ^1 _, d' K; E; q
当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。
+ L- X* d4 V% b0 tErase
0 R' f2 l( j' X% `& h, D$ MErase array 5 s! T" U& Q# t( R5 Y
清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
3 D) k+ i ?! e2 xExit 3 u" h# I" w8 k) ^, l
Exit Do + E- x1 Q6 O$ Y
退出一个 DO . . . LOOP 循环。
, W. W8 n/ [: H$ k' zExit For
; a& u6 w; s7 m/ c% X1 Q+ x退出一个 For . . . Next 循环或For Each . . . Next循环。 ' R9 s i' U* b7 r! ?4 W) }: a
Exit Function ; e" @/ V6 ?4 ^% p* @) R3 N
退出一个 函数。 9 v5 X4 M; R' t; V$ M, q, S
Exit Sub " j% `; X% H" S9 ?* _7 ^
退出一个子程序。
5 [& M0 h% J, i2 d0 H* ^For . . . Next ) `7 _7 m7 ]$ x, h
For counter = start To End [Step step] 1 O( ^$ l4 a: w5 b/ z
[statements]
7 H6 F+ |3 J% ?. o$ ][Exit For]
: q- C& [3 x6 ] |. n[statements]
: L1 s% D3 C- H& s# ~. H( dNext * p2 y& L% T9 x5 E2 Y. I7 f
由loop 计数器指定的次数重复执行statements语句群。
* u2 {1 v7 g2 W T( u; zFor Each . . . Next ! n% }6 d6 W4 k! k
For Each element In group
* F4 J5 V' S' j# {0 s9 J[statements]
$ t4 n6 \, }4 L, n5 r& _[Exit For] 8 L* L' P/ i1 }
[statements] # a% n8 w; M( k0 ?1 W
Next [element]
. k) T2 y, H" ~# Z$ t对于每一个在数组或集合中的元素,重复执行statements语句群。
. I( S& ^- C3 F0 X" XFunction
$ @8 Y% c- j9 B! L5 v$ W+ P8 u, |[Public | Private] Function name [(arglist)]
/ ^; R( T: S- v, w5 [6 F/ H$ N! m* O3 x0 i[statements]
* l+ F" d: C) @ w4 M* D; q[name=expression]
4 }; g1 @. B L% S" }4 l[Exit Function] 8 m1 x2 r$ o1 W! Y
[statements] 3 t1 g; n9 [* o
[name=expression]
% @. w& p f- t3 nEnd Function % }, T Z. h( y7 p: \; a
定义一个函数,指明函数名,参数及代码。 % p; _, O) w2 `: B d$ i
If . . . Then . . . Else
% B1 j# r6 n( P6 R语法1: 5 B8 w# [1 I0 B3 j3 b
If condition Then statements [Else elsestatements]
1 J5 _% X8 S7 B8 T( X语法2:
" J0 z' {5 R& L$ vIf condition Then
: {9 {0 h: i6 u. @! F4 f' jstatements
& i7 s1 \$ U7 S6 g7 _( m1 R+ l[ElseIf condition-n Then
/ D* D& @$ {2 [- D/ S5 Z[elseifstatements]] . . . / ^' \: N# s5 ]4 c' Y. \0 T
[Else
3 @9 U8 ]5 w5 h# h/ p: k* ^[elsestatements]]
# f0 @$ H3 _ I' i, e- \ B) YEnd If
) [+ t* \# }* G& v$ V" C" \两种格式都条件执行一系列语句。 ( \* K/ b0 k( e' n
On Error + d2 a5 G' |3 m7 V# @2 ~1 A' @
On Error Resume Next
/ j& J& F6 _3 n5 s% O. C当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
2 t b* r1 c5 r5 a. MOption Explicit ! t/ M; ]! p4 ~/ [: u9 X+ W# g3 L
Option Explicit
. P% F; ~9 o% V' f. v在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。
8 d" M! ?/ }$ v+ q. [' s# mPrivate 6 B; t: W6 z. v" O* j; {* k" n
Private varname[([下标])][, varname[([下标])] . . .
+ I7 I2 _4 t. N6 g5 O) D创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用) % u# O$ r: l& X4 n: J+ y; S
Public
& {) P2 z0 k* v9 Q6 ?Public varname[([下标])][, varname[([下标])] . . .
2 h! h& D3 y# @/ f: R$ a创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用) " `, A0 E9 V' i+ i. Q/ h/ O
Randomize
- ^# M) s' o8 ?) n1 J1 {5 B" mRandomize [number] 6 O& n* s. ~+ O8 ]" B
给Rnd函数的随机数发生器一个新种子值。
; n: P1 ^2 L* lReDim
R" a3 A* p+ S& S0 m- o8 qReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . .
8 x( a9 M* ?! @$ \: }/ ?修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。 A2 G4 |2 F! w: `9 v
Rem 7 @$ j7 b1 T; O
语法1:
/ l0 H6 j! p; nRem comment # W" t3 _" O) _ o- Y# b
语法2: ( L0 U0 K E* @1 I9 F% t
‘comment
- Z6 _! t( C/ P& ]$ E+ e这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。
; k( v) b* t8 gSelect Case
/ D* l6 [. z% n) ^, TSelect Case testexpression
: C& q( |) k7 q[Case expressionlist-n + g$ f3 D4 B! A/ E- _$ I+ Z% u
[statements-n]] . . . . Z. d8 W+ [% P: e5 ~7 C
[Case Else expressionlist-n . g. s# Q' }, Z- Q
[elsestatements-n]]
1 Q' \' i, \2 o" ~* A YEnd Select
/ x$ ?2 p3 [# N如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。 2 { N* i$ z# S2 q& C6 l5 r
Set
. c9 Y4 q7 ~9 ?. z( L; {Set obectvar= {objectexpression | Nothing} 4 a3 U- I* c2 _
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 - j) I0 R, Y% Q* L+ d' [" r
Sub
7 F% {4 a5 s* i) j( Y( r4 Z[Public | Private] Sub name [(arglist)] " M. f$ k- c7 V. p) Y; c
[statements] [% q6 E% a6 i. }
[Exit Sub]
2 o6 V' g. p4 u+ j2 ?. V[statements]
$ `( W. A$ V. B- a q1 UEnd Sub 1 z$ _% [* Q5 s% H
定义一个子程序,指明名称,参数及代码。
: m4 v3 O& ?0 Q q) F' rWhile . . . Wend 4 |3 G7 X2 g( O4 @! ~$ I0 Y
While condition
; b5 x: D; P4 b& @6 ?2 |. O% C3 Z[statements]
$ _3 p k/ X) r dWend . K3 T: k7 X0 v
不停地连续执行语句statements 直到条件condition为True。
- b/ v/ m1 d8 c' [6 g, H; W
* m( y/ a8 P8 _+ ]7 f |