|
来源:http://blog.csdn.net/aspstu/
0 |0 L3 E* Z9 x% ]5 N语句
- z0 g3 a' u6 g! ]/ p- V& uCall
( e: t% w$ O5 U, H) x[call] name [argumentlist] ; Z5 H4 d% F5 x. D1 ^1 e, x
把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。
6 e+ c c& m6 s/ f1 }* iConst . |3 `; H4 o/ v9 j1 `
[Public | Private] Const constantname=expression 4 s- C6 h7 W2 q/ p8 L- x
用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。
, J1 o6 N r2 P# J3 O" c6 k1 H- |Dim
! n5 y+ i8 q1 u+ ?4 Q2 eDim varname[ ( [subscripts])][, varname [( [subscripts])]...
+ Z5 X& |( y+ t$ z1 O; i/ J创建一个新变量并且分配存储空间。
: \5 q! U `0 _- h! I6 }1 _" w) l yDO . . . LOOP 0 Z* G/ e+ Z* }5 Z3 z( l
语法 1: . ^: L+ V, G. o7 ?+ H6 r3 R% d
Do [{While | Until } condition ]
% p( z q2 B' q0 ?9 q, [" `[statements] . @ t ? Z2 N# Q7 L
[Exit Do] * [ a) M4 p) }# ]. `9 a7 L; B
[statements] + j( C5 {3 S3 b6 E! h- e6 w. }
LOOP
& t3 O% i" H2 B* g$ e0 f语法 2:
' Z* ?0 o ^' I9 s1 ZDo , x7 z F" k7 L
[statements]
! ~3 r4 C* j) n! S[Exit Do] & {8 L* [2 R8 ?* U* m8 U+ w
[statements] ' H' E# f( V+ P7 X5 O! i
LOOP [{While | Until } condition ] 5 w, L5 O" f5 P- O
当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。
$ {! h% {9 O H4 L0 d: p. Q* BErase 9 @0 J, A; j1 j, }* j. k" M" p
Erase array
+ c I2 \$ `7 S清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。 ) F9 ~0 f1 R( }5 D, d, J
Exit
# E) d3 ]( u! \' `5 W8 U2 V; vExit Do
V* i; e+ C: T退出一个 DO . . . LOOP 循环。
/ J) }* r4 `$ B" \( S) `) A3 \, bExit For
; I% a" _6 R6 _' z# E1 T8 i! G6 o退出一个 For . . . Next 循环或For Each . . . Next循环。 + C$ ?: Q) j. c- _0 b
Exit Function
+ ^) C- r; k- g& m% Y, m6 `退出一个 函数。 8 p& g M) p: k7 N; {& f
Exit Sub ( K- _) i1 \0 ~4 i5 F! q1 R
退出一个子程序。
0 z4 g% \. W) ^8 ]- V1 _+ T6 y! b/ YFor . . . Next 4 s6 T/ ?& x, u' r
For counter = start To End [Step step] ( Q2 X% r8 S; i* A) V% m
[statements]
: B h- e0 Y: `$ a% `, [6 X7 n% s[Exit For]
! L7 `1 j8 \* M% @. P8 [ k3 o- i[statements]
. o, ^1 `8 N% o+ g: }2 M8 D) } Z( B* GNext 7 u# E! k G* a1 S# u. |
由loop 计数器指定的次数重复执行statements语句群。
& `2 X4 G( {! e. qFor Each . . . Next
9 {1 i3 F. s, l' ]/ h7 T0 YFor Each element In group
- @/ v+ {* A# O( B7 L4 a4 s[statements]
; z4 z2 m9 Q. |& F3 _# g. m4 x[Exit For]
8 y `6 w) Y, L! L& F, e$ j" D[statements] / o! q# W: K: n
Next [element] . O# F, m( p+ q' W8 T
对于每一个在数组或集合中的元素,重复执行statements语句群。 : g. I* m6 N; u: r: L# U
Function
, N$ \0 s- U( e6 c6 n[Public | Private] Function name [(arglist)]
/ ]' c& s. _+ c; J4 s7 C[statements]
+ F! f( _- p( ^- D! e L9 t[name=expression]
8 w( h1 N: X2 s- q/ R* d[Exit Function]
3 A, o# A+ f) u/ x[statements] 7 [5 \+ E7 P, X& x
[name=expression]
9 J$ q) u0 R: ?0 z1 f/ ?End Function
" k; @, ]; Z4 ?- T7 v" c3 G定义一个函数,指明函数名,参数及代码。
9 o# q' k; E" z8 ^3 Z4 e5 q+ |If . . . Then . . . Else : N" {0 x7 b9 w: D! G+ `: \7 i [
语法1: R6 J! H- {& j( P1 x
If condition Then statements [Else elsestatements] 7 c+ o3 [* |0 C9 X9 ]
语法2: 9 g& s) m) o% _; V* Q8 ^3 q$ c5 N) J
If condition Then
2 ]$ }" A7 D$ Pstatements
6 Q( `7 H& p% d7 A[ElseIf condition-n Then + W8 b5 r; n5 o# {
[elseifstatements]] . . . . h' V- `7 j) a( F5 X
[Else & W9 |* B- i" P/ r
[elsestatements]] 2 C9 O5 I' U% J( X) U3 M
End If ! g: a) i0 c3 q, o3 e( ?# j
两种格式都条件执行一系列语句。
8 c8 u" t2 e5 BOn Error & S* h" s* f( o" Y6 _
On Error Resume Next 2 R$ U$ }+ h" K! G% L$ p
当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
( z9 @ }5 L: B4 c8 P, O; MOption Explicit : X$ O! w& s, _# p/ a
Option Explicit
+ C& L. y$ U' i8 `$ S: ]在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。 2 O& q9 @3 g4 T' f* _; e
Private 0 ^6 F5 q2 [- b5 t5 Q6 L
Private varname[([下标])][, varname[([下标])] . . . 1 [$ N+ ~/ H: G6 b
创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用)
% M# G! x, N! i+ r% W" ^Public + `$ u8 w( H7 A) m" q
Public varname[([下标])][, varname[([下标])] . . . & f& ]9 c5 g" \1 U
创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用)
* l& B5 Q2 c! T9 Z: T7 i3 ?/ qRandomize ' b- S' A% @$ V+ Z9 m# \: z
Randomize [number] ; I- h( J* ^; x
给Rnd函数的随机数发生器一个新种子值。 , x$ V0 M" b4 _' @' M: [3 M
ReDim
6 }0 x! P5 s% D3 ~3 Z( \! QReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . .
) L% _$ _$ L. {$ u修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。 6 R& R$ t$ w) i1 U4 R
Rem . K% b0 i: G; w2 V; t; |2 h
语法1:
0 A6 E, q) Z& Q( ^- v/ qRem comment
4 V# A) W2 ` {. e1 D" @语法2:
* X" ]" M4 ~' }. N‘comment : L% ^3 T9 d' i& b, D% S7 }5 a& b
这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。
7 c- p: J2 p3 LSelect Case
6 ~. e9 ^$ u+ ~) m. |. ySelect Case testexpression
' b$ C2 V0 W0 u2 j0 H a0 e8 W# I* x[Case expressionlist-n
$ C. j7 q% @5 S0 G3 }2 `[statements-n]] . . .
! g# E. M0 [2 i2 i7 G[Case Else expressionlist-n ( N# [9 k; f5 M; K( @
[elsestatements-n]] 8 |5 N2 W* i5 E+ V3 t
End Select % Q8 N' n( ^1 |! h) ~
如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。 4 p1 [7 }) R* _
Set
! v7 X2 g/ p) SSet obectvar= {objectexpression | Nothing} m& L3 d0 F. I( B+ P
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。
7 m x7 C: N9 }0 L6 o0 j) M ASub
( E5 O) d& ?, [2 l# [* |; E% V# G[Public | Private] Sub name [(arglist)] ; H8 K* h! }) d, B& s6 I/ x
[statements]
0 i2 h5 D. h, C* f$ u1 }[Exit Sub] & P6 V8 o: X/ J0 G
[statements]
# C# q4 D; ~7 e3 YEnd Sub
3 k% Q4 Y( r( s$ ^ p) L; `; X定义一个子程序,指明名称,参数及代码。 ) o6 [+ }1 p9 H* @, A& [
While . . . Wend
/ d1 p+ h) I1 HWhile condition " C7 o2 p0 B$ L& M
[statements] b3 V" d5 J I+ i8 `5 b
Wend ' M1 ^1 [% ~; W. A( d# e1 Z0 P
不停地连续执行语句statements 直到条件condition为True。 / \* ~: b2 ]# ^5 O
% p: K3 g4 G! O4 }& C |