|
来源:http://blog.csdn.net/aspstu/
5 x+ ?' T8 \4 w) X3 c" y语句
3 g) [$ Q7 c5 J+ Q- L4 G" Q( BCall
0 i% K ]+ g6 m }[call] name [argumentlist] # m. _! Y( v7 p2 J- s( A( B
把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。 7 `' m: l* |* P9 w& d8 v1 ~9 z
Const 0 v) S' T+ q( U2 E7 U9 v/ u
[Public | Private] Const constantname=expression
5 d1 i/ a5 \3 \. ]# s用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 ) D% }, Q+ V9 M; e# M
Dim - [7 _7 J* G: c, b* g$ ?
Dim varname[ ( [subscripts])][, varname [( [subscripts])]...
3 H( m2 J: }# b0 `5 b创建一个新变量并且分配存储空间。 3 r$ v! }3 {4 q8 A% }, y
DO . . . LOOP
! L" Y+ P; k4 ]* [9 c语法 1:
" z. _6 M$ S1 b% y& QDo [{While | Until } condition ] & v8 V3 K; _$ \" m& t
[statements]
: `& L# ~8 ]9 f4 \. D5 S2 t: F1 I% F) }[Exit Do]
8 x- q, V8 e9 @( b3 N9 G+ b/ |[statements] % J1 K& {2 }8 @4 @# L, E1 Y8 L
LOOP
! o+ s M% j5 T1 M" _5 k7 r: n4 N语法 2:
$ Q: S' m6 p6 N- ^2 F$ EDo
|' x. X2 B; p7 A+ ?3 J8 L9 \[statements]
) C: J4 E2 z" h9 ^7 V, n8 l: r[Exit Do]
`. P f5 V3 N' U. y+ D, `# S[statements]
* _/ ^) @- p! [" X' c! JLOOP [{While | Until } condition ]
! q! v& T; B# U. y; g) n1 c当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。
4 ~% Y! N6 L5 Y) f4 O9 AErase : z- s# g" {2 R( x: H
Erase array ) X; A/ {/ f) v3 q3 o2 G
清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
7 B4 V% [, w- G. p, h& sExit
: t) o0 @# q0 [3 V: [$ \0 YExit Do
2 q% V* o( N9 t _' p; L% k退出一个 DO . . . LOOP 循环。 8 W, |4 p2 t( X J
Exit For & p7 u1 r) v1 V4 ]& e% F
退出一个 For . . . Next 循环或For Each . . . Next循环。
5 [# M3 m g+ J2 C7 E6 a6 BExit Function 9 U# I2 l$ P0 O6 l$ r
退出一个 函数。 ' C A2 t( L+ q0 @6 z
Exit Sub ) v' r& F4 s: x; P" d+ P& z
退出一个子程序。 5 c, W2 ^& u# l o0 v1 ^8 ]
For . . . Next
" s; ~" c/ T; G% |For counter = start To End [Step step] ( u; L- c( O8 m5 x1 q
[statements] T8 P, l) G8 { M* t) G
[Exit For] : @9 g( \; y d& O, d9 l, B5 `
[statements]
) _0 l5 P/ I8 R' G PNext
( m" k) y: x. _6 V3 {' S4 a) O& W8 ?由loop 计数器指定的次数重复执行statements语句群。 9 E% Y) M0 \9 [
For Each . . . Next & W" Q' }9 G' m$ O2 E
For Each element In group + |( w2 N: u" e5 z
[statements] 1 E1 _$ E; v4 [. ]
[Exit For]
& K3 l4 k0 v$ r6 Y& d[statements] $ S( @6 w! \% F8 F$ P+ q7 d
Next [element]
( R; C8 {4 k$ S, P$ [6 q对于每一个在数组或集合中的元素,重复执行statements语句群。
& P& e l% d7 `$ AFunction
2 ~2 I0 C9 `9 {: y) ^% }[Public | Private] Function name [(arglist)] 8 Q/ R/ N4 `3 J" i% ^
[statements]
! E9 _- r# B3 b9 M) A[name=expression] 6 p: ^ b8 Z9 j' Z2 e, a& Y- t" S
[Exit Function] 7 Z: f* i$ u- L/ T; S+ [
[statements]
- C* ]; F# _6 H9 k; o[name=expression] 7 p# g/ j: O& e( o) S
End Function
7 ]5 h ^- y9 N: p: I, v定义一个函数,指明函数名,参数及代码。
6 g9 b& v F- Q. N3 O# P6 {, W; |If . . . Then . . . Else
8 ?6 Q" g8 |, m, a9 Y语法1:
5 w- F, R2 I4 ~6 pIf condition Then statements [Else elsestatements] 9 i3 {2 x3 T$ K; q8 r
语法2:
' T! @& Z3 p* \% ~) w% V7 m8 ?If condition Then % h# u% ]% p- j9 S. K
statements
$ E& j9 \# Z4 r$ _3 D[ElseIf condition-n Then - K& q* j! Q4 J ~
[elseifstatements]] . . . ' ~% [- U: `; Y( q& Z
[Else . V. \7 @" w' c8 i- a
[elsestatements]] 2 {2 l2 n+ E8 C; q' X$ A4 s
End If W7 J5 w# G m( [1 J0 J9 R
两种格式都条件执行一系列语句。 + W- G. s# M& Q; @& v1 T% H. N; A
On Error
9 H5 p, ], }9 b6 QOn Error Resume Next
" {8 [ E, L2 h当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
; d0 c2 z# @4 J8 l5 \1 b3 n9 S8 EOption Explicit 6 s9 u8 Y$ d9 I! z% W
Option Explicit
2 h; O; a8 f; U, m- ~4 H+ \在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。 4 K& d9 L1 G5 Y8 B, U. C+ C4 ]7 f7 e
Private
3 {" f2 m' N" _; R& s! n0 `Private varname[([下标])][, varname[([下标])] . . .
/ t' N0 H; V& ^* r创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用)
8 F3 @0 n8 ~* O" V$ m1 S$ NPublic * E: k+ U+ J( m! Z @% X- A
Public varname[([下标])][, varname[([下标])] . . .
- O2 u- o9 n/ E; r0 }. R) n创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用)
4 A: N6 l b uRandomize
1 {8 A1 [/ _3 H$ v _Randomize [number]
}7 l- b4 Q8 s2 h$ @给Rnd函数的随机数发生器一个新种子值。 % d# w# {4 T5 ~
ReDim
2 [/ V9 E* S* r, j0 |. U5 P3 jReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . .
1 J/ X/ s. `! S修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。
4 j, s* P5 w( R3 H ^Rem
- l$ z3 |( h6 n/ m# s o语法1:
" D% V# t2 d# q( vRem comment
& L' ~: t& Z. S9 i7 s/ G语法2:
3 T8 e J% Z5 P. d0 ]9 J" T‘comment
. L& b! H1 G$ @! g/ r: h: o这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。
4 x+ F1 B$ N S5 ~3 o; pSelect Case 1 W4 d$ Y$ d3 Y( l
Select Case testexpression ! Q6 e4 J5 Z0 f$ O' `
[Case expressionlist-n % `+ V% X- {' z
[statements-n]] . . . % c4 Z: s7 _/ d) F6 R \
[Case Else expressionlist-n , T. V$ S( N# z% x3 O
[elsestatements-n]]
6 \0 r& Q! c: f5 XEnd Select 8 W. M/ O: _" n" S) d9 z: A
如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
T7 F* W( p& A1 D# m. gSet
7 ]# J% p$ K+ zSet obectvar= {objectexpression | Nothing}
( i- i5 S7 Y6 ]& r! ]0 S" @5 A" j, {赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 " K1 ~" B4 o7 \& |
Sub % W5 K8 K- S, F0 m/ ^
[Public | Private] Sub name [(arglist)]
0 x. p4 o6 x1 |[statements] # N% v4 V' t: ]" U3 O
[Exit Sub] : p4 q0 Z7 r& Y2 J0 @! R( k
[statements]
# [) h$ o0 K. uEnd Sub
4 H$ U* \) e( f4 [ ~定义一个子程序,指明名称,参数及代码。
+ A; c6 Z* I3 ^" c$ r6 c% `0 j* rWhile . . . Wend : Z+ W, s* ^+ J2 v
While condition " ?7 F. S2 S! e* \! n* |
[statements]
' |# g) E9 N7 m: EWend - \8 P( a% O3 z6 | d4 z4 ~6 O
不停地连续执行语句statements 直到条件condition为True。 . Z' v1 h9 n, \) W8 ]0 p. c
# G- {8 \3 q \0 r6 Z; J/ | |